mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
Replaced all .NET settings with own settings implementation
This commit is contained in:
parent
f1214eb3ab
commit
53c016ffdd
@ -360,17 +360,10 @@
|
||||
<Compile Include="Managers\MainManager.cs" />
|
||||
<Compile Include="Managers\ProfileManager.cs" />
|
||||
<Compile Include="Models\EffectModel.cs" />
|
||||
<Compile Include="Models\EffectSettings.cs" />
|
||||
<Compile Include="Models\GameSettings.cs" />
|
||||
<Compile Include="Models\Interfaces\GameDataModel.cs" />
|
||||
<Compile Include="Models\OverlaySettings.cs" />
|
||||
<Compile Include="Models\Interfaces\IDataModel.cs" />
|
||||
<Compile Include="Modules\Effects\AudioVisualizer\AudioVisualization.cs" />
|
||||
<Compile Include="Modules\Effects\Bubbles\Bubbles.cs" />
|
||||
<Compile Include="Modules\Games\EurotruckSimulator2\EurotruckSimulator2.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>EurotruckSimulator2.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Effects\WindowsProfile\PerformanceInfo.cs" />
|
||||
<Compile Include="Modules\Games\EurotruckSimulator2\EurotruckSimulator2DataModel.cs" />
|
||||
<Compile Include="Modules\Games\EurotruckSimulator2\EurotruckSimulator2Model.cs" />
|
||||
<Compile Include="Modules\Games\EurotruckSimulator2\EurotruckSimulator2Settings.cs" />
|
||||
@ -378,11 +371,6 @@
|
||||
<DependentUpon>EurotruckSimulator2View.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\EurotruckSimulator2\EurotruckSimulator2ViewModel.cs" />
|
||||
<Compile Include="Modules\Games\UnrealTournament\UnrealTournament.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>UnrealTournament.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\UnrealTournament\UnrealTournamentDataModel.cs" />
|
||||
<Compile Include="Modules\Games\UnrealTournament\UnrealTournamentModel.cs" />
|
||||
<Compile Include="Modules\Games\UnrealTournament\UnrealTournamentSettings.cs" />
|
||||
@ -390,11 +378,6 @@
|
||||
<DependentUpon>UnrealTournamentView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\UnrealTournament\UnrealTournamentViewModel.cs" />
|
||||
<Compile Include="Modules\Games\WorldofWarcraft\WoW.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>WoW.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\WorldofWarcraft\WoWDataModel.cs" />
|
||||
<Compile Include="Modules\Games\WorldofWarcraft\WoWModel.cs" />
|
||||
<Compile Include="Modules\Games\WorldofWarcraft\WoWSettings.cs" />
|
||||
@ -423,31 +406,16 @@
|
||||
<Compile Include="Profiles\ProfileModel.cs" />
|
||||
<Compile Include="Profiles\Layers\Models\SimplePropertiesModel.cs" />
|
||||
<Compile Include="Profiles\Layers\Types\Keyboard\KeyboardPropertiesModel.cs" />
|
||||
<Compile Include="Modules\Effects\AudioVisualizer\AudioVisualization.Designer.cs">
|
||||
<DependentUpon>AudioVisualization.settings</DependentUpon>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Effects\AudioVisualizer\AudioVisualizerModel.cs" />
|
||||
<Compile Include="Modules\Effects\AudioVisualizer\Utilities\FftEventArgs.cs" />
|
||||
<Compile Include="Modules\Effects\AudioVisualizer\Utilities\SampleAggregator.cs" />
|
||||
<Compile Include="Modules\Effects\Bubbles\Bubble.cs" />
|
||||
<Compile Include="Modules\Effects\Bubbles\Bubbles.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Bubbles.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Effects\Bubbles\BubblesSettings.cs" />
|
||||
<Compile Include="Modules\Effects\Bubbles\BubblesModel.cs" />
|
||||
<Compile Include="Modules\Effects\Bubbles\BubblesView.xaml.cs">
|
||||
<DependentUpon>BubblesView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Effects\Bubbles\BubblesViewModel.cs" />
|
||||
<Compile Include="Modules\Effects\WindowsProfile\WindowsProfile.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>WindowsProfile.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Effects\WindowsProfile\WindowsProfileSettings.cs" />
|
||||
<Compile Include="Modules\Effects\WindowsProfile\WindowsProfileView.xaml.cs">
|
||||
<DependentUpon>WindowsProfileView.xaml</DependentUpon>
|
||||
@ -457,37 +425,17 @@
|
||||
<Compile Include="Modules\Effects\WindowsProfile\WindowsProfileModel.cs" />
|
||||
<Compile Include="Modules\Effects\ProfilePreview\ProfilePreviewModel.cs" />
|
||||
<Compile Include="Models\GameModel.cs" />
|
||||
<Compile Include="Modules\Games\CounterStrike\CounterStrike.Designer.cs">
|
||||
<DependentUpon>CounterStrike.settings</DependentUpon>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\CounterStrike\CounterStrikeDataModel.cs" />
|
||||
<Compile Include="Modules\Games\CounterStrike\CounterStrikeModel.cs" />
|
||||
<Compile Include="Modules\Games\CounterStrike\CounterStrikeSettings.cs" />
|
||||
<Compile Include="Modules\Games\Dota2\Dota2.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Dota2.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\Dota2\Dota2DataModel.cs" />
|
||||
<Compile Include="Modules\Games\Dota2\Dota2Model.cs" />
|
||||
<Compile Include="Modules\Games\Dota2\Dota2Settings.cs" />
|
||||
<Compile Include="Modules\Games\Overwatch\OverwatchView.xaml.cs">
|
||||
<DependentUpon>OverwatchView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\RocketLeague\RocketLeague.Designer.cs">
|
||||
<DependentUpon>RocketLeague.settings</DependentUpon>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\RocketLeague\RocketLeagueDataModel.cs" />
|
||||
<Compile Include="Modules\Games\RocketLeague\RocketLeagueModel.cs" />
|
||||
<Compile Include="Modules\Games\TheDivision\TheDivision.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>TheDivision.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\TheDivision\TheDivisionDataModel.cs" />
|
||||
<Compile Include="Modules\Games\TheDivision\TheDivisionModel.cs" />
|
||||
<Compile Include="Modules\Games\TheDivision\TheDivisionSettings.cs" />
|
||||
@ -496,21 +444,11 @@
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\TheDivision\TheDivisionViewModel.cs" />
|
||||
<Compile Include="Modules\Games\Overwatch\OverwatchDataModel.cs" />
|
||||
<Compile Include="Modules\Games\Overwatch\Overwatch.Designer.cs">
|
||||
<DependentUpon>Overwatch.settings</DependentUpon>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\Overwatch\OverwatchModel.cs" />
|
||||
<Compile Include="Modules\Games\Overwatch\OverwatchSettings.cs" />
|
||||
<Compile Include="Modules\Games\Overwatch\OverwatchViewModel.cs" />
|
||||
<Compile Include="Modules\Games\Witcher3\Witcher3DataModel.cs" />
|
||||
<Compile Include="Modules\Games\Witcher3\Witcher3Settings.cs" />
|
||||
<Compile Include="Modules\Games\Witcher3\Witcher3.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Witcher3.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Games\Witcher3\Witcher3Model.cs" />
|
||||
<Compile Include="Models\OverlayModel.cs" />
|
||||
<Compile Include="Modules\Overlays\VolumeDisplay\VolumeDisplay.cs" />
|
||||
@ -520,7 +458,6 @@
|
||||
<DependentUpon>VolumeDisplay.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Modules\Overlays\VolumeDisplay\VolumeDisplayModel.cs" />
|
||||
<Compile Include="Modules\Effects\AudioVisualizer\AudioVisualizerSettings.cs" />
|
||||
<Compile Include="Modules\Overlays\VolumeDisplay\VolumeDisplaySettings.cs" />
|
||||
<Compile Include="Modules\Games\RocketLeague\RocketLeagueSettings.cs" />
|
||||
<Compile Include="InjectionModules\BaseModules.cs" />
|
||||
@ -553,13 +490,12 @@
|
||||
</Compile>
|
||||
<Compile Include="Services\DialogService.cs" />
|
||||
<Compile Include="Services\MetroDialogService.cs" />
|
||||
<Compile Include="Settings\EffectSettings.cs" />
|
||||
<Compile Include="Settings\GameSettings.cs" />
|
||||
<Compile Include="Settings\GeneralSettings.cs" />
|
||||
<Compile Include="Settings\IArtemisSettings.cs" />
|
||||
<Compile Include="Settings\Offsets.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
<DependentUpon>Offsets.settings</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Settings\OffsetSettings.cs" />
|
||||
<Compile Include="Settings\OverlaySettings.cs" />
|
||||
<Compile Include="Styles\DropTargetAdorners\DropTargetMetroHighlightAdorner.cs" />
|
||||
<Compile Include="Styles\DropTargetAdorners\DropTargetMetroInsertionAdorner.cs" />
|
||||
<Compile Include="Utilities\ColorHelpers.cs" />
|
||||
@ -691,19 +627,7 @@
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Modules\Games\UnrealTournament\Resources\ut-plugin.zip" />
|
||||
<None Include="Modules\Games\EurotruckSimulator2\EurotruckSimulator2.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>EurotruckSimulator2.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Modules\Games\UnrealTournament\UnrealTournament.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>UnrealTournament.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<EmbeddedResource Include="Modules\Games\Witcher3\Resources\witcher3-mod.zip" />
|
||||
<None Include="Modules\Games\WorldofWarcraft\WoW.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>WoW.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="NLog.xsd">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
@ -714,42 +638,6 @@
|
||||
<SubType>Designer</SubType>
|
||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<None Include="Modules\Effects\AudioVisualizer\AudioVisualization.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>AudioVisualization.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Modules\Effects\Bubbles\Bubbles.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Bubbles.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Modules\Effects\WindowsProfile\WindowsProfile.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>WindowsProfile.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Modules\Games\CounterStrike\CounterStrike.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>CounterStrike.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Modules\Games\Dota2\Dota2.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Dota2.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Modules\Games\RocketLeague\RocketLeague.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>RocketLeague.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Modules\Games\TheDivision\TheDivision.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>TheDivision.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Modules\Games\Overwatch\Overwatch.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Overwatch.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Modules\Games\Witcher3\Witcher3.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Witcher3.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
<None Include="Modules\Overlays\VolumeDisplay\VolumeDisplay.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>VolumeDisplay.Designer.cs</LastGenOutput>
|
||||
@ -785,10 +673,6 @@
|
||||
<Resource Include="Resources\Keyboards\blackwidow.png" />
|
||||
<None Include="Resources\Keyboards\none.png" />
|
||||
<None Include="Resources\Keyboards\demo-gif.gif" />
|
||||
<None Include="Settings\Offsets.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Offsets.Designer.cs</LastGenOutput>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="App.config">
|
||||
|
||||
@ -22,7 +22,7 @@ namespace Artemis
|
||||
public ArtemisBootstrapper()
|
||||
{
|
||||
// Start logging before anything else
|
||||
Logging.SetupLogging(SettingsProvider.Load<GeneralSettings>("GeneralSettings").LogLevel);
|
||||
Logging.SetupLogging(SettingsProvider.Load<GeneralSettings>().LogLevel);
|
||||
|
||||
Initialize();
|
||||
BindSpecialValues();
|
||||
|
||||
@ -20,15 +20,14 @@ namespace Artemis.DAL
|
||||
/// <summary>
|
||||
/// Loads settings with the given name from the filesystem
|
||||
/// </summary>
|
||||
/// <param name="name"></param>
|
||||
/// <returns></returns>
|
||||
public static T Load<T>(string name) where T : new()
|
||||
public static T Load<T>() where T : new()
|
||||
{
|
||||
if (!AreSettings(typeof(T)))
|
||||
throw new ArgumentException("Type doesn't implement IArtemisSettings");
|
||||
|
||||
// Attempt to load from memory first
|
||||
var inMemory = Settings.FirstOrDefault(s => s.Name == name);
|
||||
var inMemory = Settings.FirstOrDefault(s => s.GetType() == typeof(T));
|
||||
if (inMemory != null)
|
||||
return (T) inMemory;
|
||||
|
||||
@ -37,20 +36,24 @@ namespace Artemis.DAL
|
||||
try
|
||||
{
|
||||
var loadSettings = (IArtemisSettings) JsonConvert
|
||||
.DeserializeObject<T>(File.ReadAllText(SettingsFolder + $@"\{name}.json"));
|
||||
.DeserializeObject<T>(File.ReadAllText(SettingsFolder + $@"\{typeof(T)}.json"));
|
||||
|
||||
if (loadSettings == null)
|
||||
SetToDefault(ref loadSettings);
|
||||
{
|
||||
loadSettings = (IArtemisSettings) new T();
|
||||
loadSettings.Reset(true);
|
||||
}
|
||||
|
||||
Settings.Add(loadSettings);
|
||||
return (T) loadSettings;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Logger.Error(e, "Couldn't load settings '{0}.json'", name);
|
||||
Logger.Error(e, "Couldn't load settings '{0}.json'", typeof(T));
|
||||
|
||||
// Not sure about this, I've seen prettier code
|
||||
var loadSettings = (IArtemisSettings) new T();
|
||||
SetToDefault(ref loadSettings);
|
||||
loadSettings.Reset(true);
|
||||
Settings.Add(loadSettings);
|
||||
return (T) loadSettings;
|
||||
}
|
||||
@ -73,29 +76,27 @@ namespace Artemis.DAL
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Logger.Error(e, "Couldn't save settings '{0}.json'", artemisSettings.Name);
|
||||
Logger.Error(e, "Couldn't save settings '{0}.json'", artemisSettings.GetType());
|
||||
return;
|
||||
}
|
||||
|
||||
File.WriteAllText(SettingsFolder + $@"\{artemisSettings.Name}.json", json);
|
||||
File.WriteAllText(SettingsFolder + $@"\{artemisSettings.GetType()}.json", json);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Restores the settings object to its default values
|
||||
/// Ensures the settings folder exists
|
||||
/// </summary>
|
||||
/// <param name="settings"></param>
|
||||
public static void SetToDefault(ref IArtemisSettings settings)
|
||||
{
|
||||
// Loading the object from an empty JSON object makes Json.NET use all the default values
|
||||
settings = (IArtemisSettings) JsonConvert.DeserializeObject("{}", settings.GetType());
|
||||
}
|
||||
|
||||
private static void CheckSettings()
|
||||
{
|
||||
if (!Directory.Exists(SettingsFolder))
|
||||
Directory.CreateDirectory(SettingsFolder);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Checks to see if the given type is a setting
|
||||
/// </summary>
|
||||
/// <param name="t"></param>
|
||||
/// <returns></returns>
|
||||
private static bool AreSettings(Type t)
|
||||
{
|
||||
return typeof(IArtemisSettings).IsAssignableFrom(t);
|
||||
|
||||
@ -24,7 +24,7 @@ namespace Artemis.Managers
|
||||
public DeviceManager(ILogger logger, List<DeviceProvider> deviceProviders)
|
||||
{
|
||||
_logger = logger;
|
||||
_generalSettings = SettingsProvider.Load<GeneralSettings>("GeneralSettings");
|
||||
_generalSettings = SettingsProvider.Load<GeneralSettings>();
|
||||
|
||||
KeyboardProviders = deviceProviders.Where(d => d.Type == DeviceType.Keyboard)
|
||||
.Cast<KeyboardProvider>().ToList();
|
||||
|
||||
@ -25,7 +25,7 @@ namespace Artemis.Managers
|
||||
{
|
||||
EffectModels = new List<EffectModel>();
|
||||
|
||||
_generalSettings = DAL.SettingsProvider.Load<GeneralSettings>("GeneralSettings");
|
||||
_generalSettings = DAL.SettingsProvider.Load<GeneralSettings>();
|
||||
_logger = logger;
|
||||
_deviceManager = deviceManager;
|
||||
|
||||
|
||||
@ -40,7 +40,7 @@ namespace Artemis.Managers
|
||||
Running = false;
|
||||
|
||||
// Create and start the web server
|
||||
GameStateWebServer = new GameStateWebServer();
|
||||
GameStateWebServer = new GameStateWebServer(logger);
|
||||
GameStateWebServer.Start();
|
||||
|
||||
// Start the named pipe
|
||||
|
||||
@ -16,6 +16,7 @@ namespace Artemis.Managers
|
||||
private readonly EffectManager _effectManager;
|
||||
private readonly ILogger _logger;
|
||||
private readonly LoopManager _loopManager;
|
||||
private GeneralSettings _generalSettings;
|
||||
|
||||
public ProfileManager(ILogger logger, EffectManager effectManager, DeviceManager deviceManager,
|
||||
LoopManager loopManager)
|
||||
@ -24,6 +25,7 @@ namespace Artemis.Managers
|
||||
_effectManager = effectManager;
|
||||
_deviceManager = deviceManager;
|
||||
_loopManager = loopManager;
|
||||
_generalSettings = SettingsProvider.Load<GeneralSettings>();
|
||||
|
||||
GameViewModels = new List<GameViewModel>();
|
||||
|
||||
@ -45,7 +47,7 @@ namespace Artemis.Managers
|
||||
/// <param name="e"></param>
|
||||
private void SetupProfilePreview(object sender, ElapsedEventArgs e)
|
||||
{
|
||||
if (string.IsNullOrEmpty(SettingsProvider.Load<GeneralSettings>("GeneralSettings").LastKeyboard) || _deviceManager.ChangingKeyboard ||
|
||||
if (string.IsNullOrEmpty(_generalSettings.LastKeyboard) || _deviceManager.ChangingKeyboard ||
|
||||
ProfilePreviewModel == null)
|
||||
return;
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ using Artemis.Models.Interfaces;
|
||||
using Artemis.Profiles;
|
||||
using Artemis.Profiles.Layers.Interfaces;
|
||||
using Artemis.Profiles.Layers.Models;
|
||||
using Artemis.Settings;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Artemis.Models
|
||||
|
||||
@ -1,20 +0,0 @@
|
||||
namespace Artemis.Models
|
||||
{
|
||||
public abstract class EffectSettings
|
||||
{
|
||||
/// <summary>
|
||||
/// Loads the settings from the settings file
|
||||
/// </summary>
|
||||
public abstract void Load();
|
||||
|
||||
/// <summary>
|
||||
/// Saves the settings to the settings file
|
||||
/// </summary>
|
||||
public abstract void Save();
|
||||
|
||||
/// <summary>
|
||||
/// Returns the settings to their default value
|
||||
/// </summary>
|
||||
public abstract void ToDefault();
|
||||
}
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models.Interfaces;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Models
|
||||
{
|
||||
|
||||
@ -1,26 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Artemis.Models
|
||||
{
|
||||
public class GamePointersCollectionModel
|
||||
{
|
||||
public string Game { get; set; }
|
||||
public string GameVersion { get; set; }
|
||||
public List<GamePointer> GameAddresses { get; set; }
|
||||
}
|
||||
|
||||
public class GamePointer
|
||||
{
|
||||
public string Description { get; set; }
|
||||
public IntPtr BasePointer { get; set; }
|
||||
public int[] Offsets { get; set; }
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return Offsets.Aggregate(BasePointer.ToString("X"),
|
||||
(current, offset) => current + $"+{offset.ToString("X")}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
namespace Artemis.Models
|
||||
{
|
||||
public abstract class GameSettings : EffectSettings
|
||||
{
|
||||
public bool Enabled { get; set; }
|
||||
public string LastProfile { get; set; }
|
||||
}
|
||||
}
|
||||
@ -1,6 +1,6 @@
|
||||
namespace Artemis.Models.Interfaces
|
||||
{
|
||||
public interface IDataModel
|
||||
{
|
||||
}
|
||||
namespace Artemis.Models.Interfaces
|
||||
{
|
||||
public interface IDataModel
|
||||
{
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,5 @@
|
||||
using Artemis.Managers;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Models
|
||||
{
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
namespace Artemis.Models
|
||||
{
|
||||
public abstract class OverlaySettings : EffectSettings
|
||||
{
|
||||
public bool Enabled { get; set; }
|
||||
}
|
||||
}
|
||||
@ -1,110 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Effects.AudioVisualizer {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class AudioVisualization : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static AudioVisualization defaultInstance = ((AudioVisualization)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new AudioVisualization())));
|
||||
|
||||
public static AudioVisualization Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("4")]
|
||||
public int Sensitivity {
|
||||
get {
|
||||
return ((int)(this["Sensitivity"]));
|
||||
}
|
||||
set {
|
||||
this["Sensitivity"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("21")]
|
||||
public int Bars {
|
||||
get {
|
||||
return ((int)(this["Bars"]));
|
||||
}
|
||||
set {
|
||||
this["Bars"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool FromBottom {
|
||||
get {
|
||||
return ((bool)(this["FromBottom"]));
|
||||
}
|
||||
set {
|
||||
this["FromBottom"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("3")]
|
||||
public int FadeSpeed {
|
||||
get {
|
||||
return ((int)(this["FadeSpeed"]));
|
||||
}
|
||||
set {
|
||||
this["FadeSpeed"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("#FFF90000")]
|
||||
public global::System.Windows.Media.Color TopColor {
|
||||
get {
|
||||
return ((global::System.Windows.Media.Color)(this["TopColor"]));
|
||||
}
|
||||
set {
|
||||
this["TopColor"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("#FFFF761E")]
|
||||
public global::System.Windows.Media.Color MiddleColor {
|
||||
get {
|
||||
return ((global::System.Windows.Media.Color)(this["MiddleColor"]));
|
||||
}
|
||||
set {
|
||||
this["MiddleColor"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("#FF00DF00")]
|
||||
public global::System.Windows.Media.Color BottomColor {
|
||||
get {
|
||||
return ((global::System.Windows.Media.Color)(this["BottomColor"]));
|
||||
}
|
||||
set {
|
||||
this["BottomColor"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,29 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Modules.Effects.AudioVisualizer" GeneratedClassName="AudioVisualization">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Sensitivity" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">4</Value>
|
||||
</Setting>
|
||||
<Setting Name="Bars" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">21</Value>
|
||||
</Setting>
|
||||
<Setting Name="FromBottom" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="FadeSpeed" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">3</Value>
|
||||
</Setting>
|
||||
<Setting Name="TopColor" Type="System.Windows.Media.Color" Scope="User">
|
||||
<Value Profile="(Default)">#FFF90000</Value>
|
||||
</Setting>
|
||||
<Setting Name="MiddleColor" Type="System.Windows.Media.Color" Scope="User">
|
||||
<Value Profile="(Default)">#FFFF761E</Value>
|
||||
</Setting>
|
||||
<Setting Name="BottomColor" Type="System.Windows.Media.Color" Scope="User">
|
||||
<Value Profile="(Default)">#FF00DF00</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -23,18 +23,16 @@ namespace Artemis.Modules.Effects.AudioVisualizer
|
||||
private int _sensitivity;
|
||||
private IWaveIn _waveIn;
|
||||
|
||||
public AudioVisualizerModel(MainManager mainManager) : base(mainManager, new AudioVisualizerSettings(), null)
|
||||
public AudioVisualizerModel(MainManager mainManager) : base(mainManager, null, null)
|
||||
{
|
||||
Name = "Audiovisualizer";
|
||||
DeviceIds = new List<string>();
|
||||
SpectrumData = new List<byte>();
|
||||
Initialized = false;
|
||||
Settings = (AudioVisualizerSettings) base.Settings;
|
||||
}
|
||||
|
||||
public int Lines { get; set; }
|
||||
|
||||
public new AudioVisualizerSettings Settings { get; set; }
|
||||
|
||||
public List<byte> SpectrumData { get; set; }
|
||||
public List<KeyboardRectangle> SoundRectangles { get; set; }
|
||||
|
||||
@ -72,15 +70,15 @@ namespace Artemis.Modules.Effects.AudioVisualizer
|
||||
MainManager.DeviceManager.ActiveKeyboard,
|
||||
0, 0, new List<Color>
|
||||
{
|
||||
ColorHelpers.ToDrawingColor(Settings.TopColor),
|
||||
ColorHelpers.ToDrawingColor(Settings.MiddleColor),
|
||||
ColorHelpers.ToDrawingColor(Settings.BottomColor)
|
||||
Color.Red,
|
||||
Color.Yellow,
|
||||
Color.Lime
|
||||
},
|
||||
LinearGradientMode.Vertical)
|
||||
{ContainedBrush = false, Height = 0});
|
||||
}
|
||||
_sensitivity = Settings.Sensitivity;
|
||||
_fromBottom = Settings.FromBottom;
|
||||
_sensitivity = 2;
|
||||
_fromBottom = true;
|
||||
_sampleAggregator.FftCalculated += FftCalculated;
|
||||
_sampleAggregator.PerformFFT = true;
|
||||
|
||||
@ -127,7 +125,7 @@ namespace Artemis.Modules.Effects.AudioVisualizer
|
||||
SoundRectangles[i].Height = keyboardHeight;
|
||||
else
|
||||
SoundRectangles[i].Height = SoundRectangles[i].Height -
|
||||
Settings.FadeSpeed;
|
||||
5; // was FadeSpeed setting
|
||||
// Apply Bars setting
|
||||
SoundRectangles[i].X = i*KeyboardScale;
|
||||
SoundRectangles[i].Width = KeyboardScale;
|
||||
|
||||
@ -1,56 +0,0 @@
|
||||
using System.Windows.Media;
|
||||
using Artemis.Models;
|
||||
|
||||
namespace Artemis.Modules.Effects.AudioVisualizer
|
||||
{
|
||||
public class AudioVisualizerSettings : EffectSettings
|
||||
{
|
||||
public AudioVisualizerSettings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public int Sensitivity { get; set; }
|
||||
public int Bars { get; set; }
|
||||
public bool FromBottom { get; set; }
|
||||
public int FadeSpeed { get; set; }
|
||||
public Color TopColor { get; set; }
|
||||
public Color MiddleColor { get; set; }
|
||||
public Color BottomColor { get; set; }
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
Sensitivity = AudioVisualization.Default.Sensitivity;
|
||||
Bars = AudioVisualization.Default.Bars;
|
||||
FromBottom = AudioVisualization.Default.FromBottom;
|
||||
FadeSpeed = AudioVisualization.Default.FadeSpeed;
|
||||
TopColor = AudioVisualization.Default.TopColor;
|
||||
MiddleColor = AudioVisualization.Default.MiddleColor;
|
||||
BottomColor = AudioVisualization.Default.BottomColor;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
AudioVisualization.Default.Sensitivity = Sensitivity;
|
||||
AudioVisualization.Default.Bars = Bars;
|
||||
AudioVisualization.Default.FromBottom = FromBottom;
|
||||
AudioVisualization.Default.FadeSpeed = FadeSpeed;
|
||||
AudioVisualization.Default.TopColor = TopColor;
|
||||
AudioVisualization.Default.MiddleColor = MiddleColor;
|
||||
AudioVisualization.Default.BottomColor = BottomColor;
|
||||
|
||||
AudioVisualization.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
Sensitivity = 4;
|
||||
Bars = 21;
|
||||
FromBottom = true;
|
||||
FadeSpeed = 3;
|
||||
TopColor = Color.FromArgb(255, 249, 0, 0);
|
||||
MiddleColor = Color.FromArgb(255, 255, 118, 30);
|
||||
BottomColor = Color.FromArgb(255, 0, 223, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,122 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Effects.Bubbles {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class Bubbles : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Bubbles defaultInstance = ((Bubbles)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Bubbles())));
|
||||
|
||||
public static Bubbles Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool IsRandomColors {
|
||||
get {
|
||||
return ((bool)(this["IsRandomColors"]));
|
||||
}
|
||||
set {
|
||||
this["IsRandomColors"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("#FFFF0000")]
|
||||
public global::System.Windows.Media.Color BubbleColor {
|
||||
get {
|
||||
return ((global::System.Windows.Media.Color)(this["BubbleColor"]));
|
||||
}
|
||||
set {
|
||||
this["BubbleColor"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool IsShiftColors {
|
||||
get {
|
||||
return ((bool)(this["IsShiftColors"]));
|
||||
}
|
||||
set {
|
||||
this["IsShiftColors"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("25")]
|
||||
public int BubbleSize {
|
||||
get {
|
||||
return ((int)(this["BubbleSize"]));
|
||||
}
|
||||
set {
|
||||
this["BubbleSize"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("4")]
|
||||
public int MoveSpeed {
|
||||
get {
|
||||
return ((int)(this["MoveSpeed"]));
|
||||
}
|
||||
set {
|
||||
this["MoveSpeed"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("12")]
|
||||
public int ShiftColorSpeed {
|
||||
get {
|
||||
return ((int)(this["ShiftColorSpeed"]));
|
||||
}
|
||||
set {
|
||||
this["ShiftColorSpeed"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("14")]
|
||||
public int BubbleCount {
|
||||
get {
|
||||
return ((int)(this["BubbleCount"]));
|
||||
}
|
||||
set {
|
||||
this["BubbleCount"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("25")]
|
||||
public int Smoothness {
|
||||
get {
|
||||
return ((int)(this["Smoothness"]));
|
||||
}
|
||||
set {
|
||||
this["Smoothness"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,32 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Modules.Effects.Bubbles" GeneratedClassName="Bubbles">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="IsRandomColors" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="BubbleColor" Type="System.Windows.Media.Color" Scope="User">
|
||||
<Value Profile="(Default)">#FFFF0000</Value>
|
||||
</Setting>
|
||||
<Setting Name="IsShiftColors" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="BubbleSize" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">25</Value>
|
||||
</Setting>
|
||||
<Setting Name="MoveSpeed" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">4</Value>
|
||||
</Setting>
|
||||
<Setting Name="ShiftColorSpeed" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">12</Value>
|
||||
</Setting>
|
||||
<Setting Name="BubbleCount" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">14</Value>
|
||||
</Setting>
|
||||
<Setting Name="Smoothness" Type="System.Int32" Scope="User">
|
||||
<Value Profile="(Default)">25</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -1,60 +1,54 @@
|
||||
using System.Windows.Media;
|
||||
using Artemis.Models;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Media;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Settings;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Artemis.Modules.Effects.Bubbles
|
||||
{
|
||||
public class BubblesSettings : EffectSettings
|
||||
{
|
||||
public BubblesSettings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
[DefaultValue(true)]
|
||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
||||
public bool IsRandomColors { get; set; }
|
||||
|
||||
public Color BubbleColor { get; set; }
|
||||
|
||||
[DefaultValue(true)]
|
||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
||||
public bool IsShiftColors { get; set; }
|
||||
|
||||
[DefaultValue(12)]
|
||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
||||
public int ShiftColorSpeed { get; set; }
|
||||
|
||||
[DefaultValue(25)]
|
||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
||||
public int BubbleSize { get; set; }
|
||||
|
||||
[DefaultValue(4)]
|
||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
||||
public int MoveSpeed { get; set; }
|
||||
|
||||
[DefaultValue(14)]
|
||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
||||
public int BubbleCount { get; set; }
|
||||
|
||||
[DefaultValue(25)]
|
||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
||||
public int Smoothness { get; set; }
|
||||
|
||||
public sealed override void Load()
|
||||
public new void Reset(bool save = false)
|
||||
{
|
||||
IsRandomColors = Bubbles.Default.IsRandomColors;
|
||||
BubbleColor = Bubbles.Default.BubbleColor;
|
||||
IsShiftColors = Bubbles.Default.IsShiftColors;
|
||||
ShiftColorSpeed = Bubbles.Default.ShiftColorSpeed;
|
||||
BubbleSize = Bubbles.Default.BubbleSize;
|
||||
MoveSpeed = Bubbles.Default.MoveSpeed;
|
||||
BubbleCount = Bubbles.Default.BubbleCount;
|
||||
Smoothness = Bubbles.Default.Smoothness;
|
||||
}
|
||||
JsonConvert.PopulateObject("{}", this, new JsonSerializerSettings
|
||||
{
|
||||
ObjectCreationHandling = ObjectCreationHandling.Reuse
|
||||
});
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
Bubbles.Default.IsRandomColors = IsRandomColors;
|
||||
Bubbles.Default.BubbleColor = BubbleColor;
|
||||
Bubbles.Default.IsShiftColors = IsShiftColors;
|
||||
Bubbles.Default.ShiftColorSpeed = ShiftColorSpeed;
|
||||
Bubbles.Default.BubbleSize = BubbleSize;
|
||||
Bubbles.Default.MoveSpeed = MoveSpeed;
|
||||
Bubbles.Default.BubbleCount = BubbleCount;
|
||||
Bubbles.Default.Smoothness = Smoothness;
|
||||
BubbleColor = Colors.Red;
|
||||
|
||||
Bubbles.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
IsRandomColors = true;
|
||||
BubbleColor = Color.FromArgb(255, 255, 0, 0);
|
||||
IsShiftColors = true;
|
||||
ShiftColorSpeed = 12;
|
||||
BubbleSize = 25;
|
||||
MoveSpeed = 4;
|
||||
BubbleCount = 14;
|
||||
Smoothness = 25;
|
||||
if (save)
|
||||
SettingsProvider.Save(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Artemis.Modules.Effects.WindowsProfile
|
||||
{
|
||||
internal static class PerformanceInfo
|
||||
{
|
||||
[DllImport("psapi.dll", SetLastError = true)]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
public static extern bool GetPerformanceInfo([Out] out PerformanceInformation performanceInformation,
|
||||
[In] int size);
|
||||
|
||||
public static long GetPhysicalAvailableMemoryInMiB()
|
||||
{
|
||||
var pi = new PerformanceInformation();
|
||||
if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
|
||||
return Convert.ToInt64(pi.PhysicalAvailable.ToInt64()*pi.PageSize.ToInt64()/1048576);
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static long GetTotalMemoryInMiB()
|
||||
{
|
||||
var pi = new PerformanceInformation();
|
||||
if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
|
||||
return Convert.ToInt64(pi.PhysicalTotal.ToInt64()*pi.PageSize.ToInt64()/1048576);
|
||||
return -1;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct PerformanceInformation
|
||||
{
|
||||
public int Size;
|
||||
public IntPtr CommitTotal;
|
||||
public IntPtr CommitLimit;
|
||||
public IntPtr CommitPeak;
|
||||
public IntPtr PhysicalTotal;
|
||||
public IntPtr PhysicalAvailable;
|
||||
public IntPtr SystemCache;
|
||||
public IntPtr KernelTotal;
|
||||
public IntPtr KernelPaged;
|
||||
public IntPtr KernelNonPaged;
|
||||
public IntPtr PageSize;
|
||||
public int HandlesCount;
|
||||
public int ProcessCount;
|
||||
public int ThreadCount;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,38 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Effects.WindowsProfile {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class WindowsProfile : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static WindowsProfile defaultInstance = ((WindowsProfile)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new WindowsProfile())));
|
||||
|
||||
public static WindowsProfile Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Demo (Duplicate to keep changes)")]
|
||||
public string LastProfile {
|
||||
get {
|
||||
return ((string)(this["LastProfile"]));
|
||||
}
|
||||
set {
|
||||
this["LastProfile"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,11 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Modules.Effects.WindowsProfile" GeneratedClassName="WindowsProfile">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="LastProfile" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">Demo (Duplicate to keep changes)</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -1,9 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Profiles.Layers.Models;
|
||||
@ -12,54 +12,6 @@ using SpotifyAPI.Local;
|
||||
|
||||
namespace Artemis.Modules.Effects.WindowsProfile
|
||||
{
|
||||
internal static class PerformanceInfo
|
||||
{
|
||||
[DllImport("psapi.dll", SetLastError = true)]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
public static extern bool GetPerformanceInfo([Out] out PerformanceInformation performanceInformation,
|
||||
[In] int size);
|
||||
|
||||
public static long GetPhysicalAvailableMemoryInMiB()
|
||||
{
|
||||
var pi = new PerformanceInformation();
|
||||
if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
|
||||
{
|
||||
return Convert.ToInt64(pi.PhysicalAvailable.ToInt64()*pi.PageSize.ToInt64()/1048576);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static long GetTotalMemoryInMiB()
|
||||
{
|
||||
var pi = new PerformanceInformation();
|
||||
if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
|
||||
{
|
||||
return Convert.ToInt64(pi.PhysicalTotal.ToInt64()*pi.PageSize.ToInt64()/1048576);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct PerformanceInformation
|
||||
{
|
||||
public int Size;
|
||||
public IntPtr CommitTotal;
|
||||
public IntPtr CommitLimit;
|
||||
public IntPtr CommitPeak;
|
||||
public IntPtr PhysicalTotal;
|
||||
public IntPtr PhysicalAvailable;
|
||||
public IntPtr SystemCache;
|
||||
public IntPtr KernelTotal;
|
||||
public IntPtr KernelPaged;
|
||||
public IntPtr KernelNonPaged;
|
||||
public IntPtr PageSize;
|
||||
public int HandlesCount;
|
||||
public int ProcessCount;
|
||||
public int ThreadCount;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class WindowsProfileModel : EffectModel
|
||||
{
|
||||
private readonly ILogger _logger;
|
||||
@ -70,7 +22,7 @@ namespace Artemis.Modules.Effects.WindowsProfile
|
||||
private bool _spotifySetupBusy;
|
||||
|
||||
public WindowsProfileModel(ILogger logger, MainManager mainManager)
|
||||
: base(mainManager, new WindowsProfileSettings(), new WindowsProfileDataModel())
|
||||
: base(mainManager, SettingsProvider.Load<WindowsProfileSettings>(), new WindowsProfileDataModel())
|
||||
{
|
||||
_logger = logger;
|
||||
Name = "WindowsProfile";
|
||||
@ -133,7 +85,7 @@ namespace Artemis.Modules.Effects.WindowsProfile
|
||||
|
||||
private void UpdateCpu(WindowsProfileDataModel dataModel)
|
||||
{
|
||||
if (_cores == null || _overallCpu == null)
|
||||
if ((_cores == null) || (_overallCpu == null))
|
||||
return;
|
||||
|
||||
// CPU is only updated every 15 frames, the performance counter gives 0 if updated too often
|
||||
|
||||
@ -1,28 +1,8 @@
|
||||
using Artemis.Models;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Modules.Effects.WindowsProfile
|
||||
{
|
||||
public class WindowsProfileSettings : GameSettings
|
||||
{
|
||||
public WindowsProfileSettings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
LastProfile = WindowsProfile.Default.LastProfile;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
WindowsProfile.Default.LastProfile = LastProfile;
|
||||
|
||||
WindowsProfile.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,62 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Games.CounterStrike {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class CounterStrike : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static CounterStrike defaultInstance = ((CounterStrike)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new CounterStrike())));
|
||||
|
||||
public static CounterStrike Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool Enabled {
|
||||
get {
|
||||
return ((bool)(this["Enabled"]));
|
||||
}
|
||||
set {
|
||||
this["Enabled"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Default")]
|
||||
public string LastProfile {
|
||||
get {
|
||||
return ((string)(this["LastProfile"]));
|
||||
}
|
||||
set {
|
||||
this["LastProfile"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string GameDirectory {
|
||||
get {
|
||||
return ((string)(this["GameDirectory"]));
|
||||
}
|
||||
set {
|
||||
this["GameDirectory"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,17 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Modules.Games.CounterStrike" GeneratedClassName="CounterStrike">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Enabled" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="LastProfile" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">Default</Value>
|
||||
</Setting>
|
||||
<Setting Name="GameDirectory" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Profiles.Layers.Models;
|
||||
@ -11,7 +12,8 @@ namespace Artemis.Modules.Games.CounterStrike
|
||||
{
|
||||
public class CounterStrikeModel : GameModel
|
||||
{
|
||||
public CounterStrikeModel(MainManager mainManager): base(mainManager, new CounterStrikeSettings(), new CounterStrikeDataModel())
|
||||
public CounterStrikeModel(MainManager mainManager)
|
||||
: base(mainManager, SettingsProvider.Load<CounterStrikeSettings>(), new CounterStrikeDataModel())
|
||||
{
|
||||
Name = "CounterStrike";
|
||||
ProcessName = "csgo";
|
||||
|
||||
@ -1,35 +1,9 @@
|
||||
using Artemis.Models;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Modules.Games.CounterStrike
|
||||
{
|
||||
public class CounterStrikeSettings : GameSettings
|
||||
{
|
||||
public CounterStrikeSettings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public string GameDirectory { get; set; }
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
Enabled = CounterStrike.Default.Enabled;
|
||||
LastProfile = CounterStrike.Default.LastProfile;
|
||||
GameDirectory = CounterStrike.Default.GameDirectory;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
CounterStrike.Default.Enabled = Enabled;
|
||||
CounterStrike.Default.GameDirectory = GameDirectory;
|
||||
|
||||
CounterStrike.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
Enabled = true;
|
||||
GameDirectory = string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -23,7 +23,7 @@ namespace Artemis.Modules.Games.CounterStrike
|
||||
{
|
||||
var gameSettings = (CounterStrikeSettings) GameSettings;
|
||||
// If already propertly set up, don't do anything
|
||||
if (gameSettings.GameDirectory != null && File.Exists(gameSettings.GameDirectory + "csgo.exe") &&
|
||||
if ((gameSettings.GameDirectory != null) && File.Exists(gameSettings.GameDirectory + "csgo.exe") &&
|
||||
File.Exists(gameSettings.GameDirectory + "/csgo/cfg/gamestate_integration_artemis.cfg"))
|
||||
return;
|
||||
|
||||
|
||||
@ -1,62 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Games.Dota2 {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class Dota2 : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Dota2 defaultInstance = ((Dota2)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Dota2())));
|
||||
|
||||
public static Dota2 Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool Enabled {
|
||||
get {
|
||||
return ((bool)(this["Enabled"]));
|
||||
}
|
||||
set {
|
||||
this["Enabled"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Default")]
|
||||
public string LastProfile {
|
||||
get {
|
||||
return ((string)(this["LastProfile"]));
|
||||
}
|
||||
set {
|
||||
this["LastProfile"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string GameDirectory {
|
||||
get {
|
||||
return ((string)(this["GameDirectory"]));
|
||||
}
|
||||
set {
|
||||
this["GameDirectory"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,17 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Modules.Games.Dota2" GeneratedClassName="Dota2">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Enabled" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="LastProfile" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">Default</Value>
|
||||
</Setting>
|
||||
<Setting Name="GameDirectory" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Profiles.Layers.Models;
|
||||
@ -9,7 +10,8 @@ namespace Artemis.Modules.Games.Dota2
|
||||
{
|
||||
public class Dota2Model : GameModel
|
||||
{
|
||||
public Dota2Model(MainManager mainManager): base(mainManager, new Dota2Settings(), new Dota2DataModel())
|
||||
public Dota2Model(MainManager mainManager)
|
||||
: base(mainManager, SettingsProvider.Load<Dota2Settings>(), new Dota2DataModel())
|
||||
{
|
||||
Name = "Dota2";
|
||||
ProcessName = "dota2";
|
||||
|
||||
@ -1,36 +1,9 @@
|
||||
using Artemis.Models;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Modules.Games.Dota2
|
||||
{
|
||||
internal class Dota2Settings : GameSettings
|
||||
{
|
||||
public Dota2Settings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public string GameDirectory { get; set; }
|
||||
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
Enabled = Dota2.Default.Enabled;
|
||||
GameDirectory = Dota2.Default.GameDirectory;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
Dota2.Default.Enabled = Enabled;
|
||||
Dota2.Default.LastProfile = LastProfile;
|
||||
Dota2.Default.GameDirectory = GameDirectory;
|
||||
|
||||
Dota2.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
Enabled = true;
|
||||
GameDirectory = string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -10,7 +10,8 @@ namespace Artemis.Modules.Games.Dota2
|
||||
{
|
||||
public sealed class Dota2ViewModel : GameViewModel
|
||||
{
|
||||
public Dota2ViewModel(MainManager main, IProfileEditorVmFactory pFactory, Dota2Model model) : base(main, model, pFactory)
|
||||
public Dota2ViewModel(MainManager main, IProfileEditorVmFactory pFactory, Dota2Model model)
|
||||
: base(main, model, pFactory)
|
||||
{
|
||||
DisplayName = "Dota 2";
|
||||
|
||||
@ -22,7 +23,7 @@ namespace Artemis.Modules.Games.Dota2
|
||||
{
|
||||
var gameSettings = (Dota2Settings) GameSettings;
|
||||
// If already propertly set up, don't do anything
|
||||
if (gameSettings.GameDirectory != null && File.Exists(gameSettings.GameDirectory + "csgo.exe") &&
|
||||
if ((gameSettings.GameDirectory != null) && File.Exists(gameSettings.GameDirectory + "csgo.exe") &&
|
||||
File.Exists(gameSettings.GameDirectory + "/csgo/cfg/gamestate_integration_artemis.cfg"))
|
||||
return;
|
||||
|
||||
|
||||
@ -1,62 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Games.EurotruckSimulator2 {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class EurotruckSimulator2 : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static EurotruckSimulator2 defaultInstance = ((EurotruckSimulator2)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new EurotruckSimulator2())));
|
||||
|
||||
public static EurotruckSimulator2 Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool Enabled {
|
||||
get {
|
||||
return ((bool)(this["Enabled"]));
|
||||
}
|
||||
set {
|
||||
this["Enabled"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Default")]
|
||||
public string LastProfile {
|
||||
get {
|
||||
return ((string)(this["LastProfile"]));
|
||||
}
|
||||
set {
|
||||
this["LastProfile"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string GameDirectory {
|
||||
get {
|
||||
return ((string)(this["GameDirectory"]));
|
||||
}
|
||||
set {
|
||||
this["GameDirectory"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,15 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="Artemis.Modules.Games.EurotruckSimulator2" GeneratedClassName="EurotruckSimulator2">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Enabled" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="LastProfile" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">Default</Value>
|
||||
</Setting>
|
||||
<Setting Name="GameDirectory" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Profiles.Layers.Models;
|
||||
@ -10,7 +11,8 @@ namespace Artemis.Modules.Games.EurotruckSimulator2
|
||||
public class EurotruckSimulator2Model : GameModel
|
||||
{
|
||||
public EurotruckSimulator2Model(MainManager mainManager)
|
||||
: base(mainManager, new EurotruckSimulator2Settings(), new EurotruckSimulator2DataModel())
|
||||
: base(mainManager, SettingsProvider.Load<EurotruckSimulator2Settings>(), new EurotruckSimulator2DataModel()
|
||||
)
|
||||
{
|
||||
Name = "EurotruckSimulator2";
|
||||
ProcessName = "eurotrucks2";
|
||||
|
||||
@ -1,35 +1,9 @@
|
||||
using Artemis.Models;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Modules.Games.EurotruckSimulator2
|
||||
{
|
||||
public class EurotruckSimulator2Settings : GameSettings
|
||||
{
|
||||
public EurotruckSimulator2Settings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public string GameDirectory { get; set; }
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
Enabled = EurotruckSimulator2.Default.Enabled;
|
||||
LastProfile = EurotruckSimulator2.Default.LastProfile;
|
||||
GameDirectory = EurotruckSimulator2.Default.GameDirectory;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
EurotruckSimulator2.Default.Enabled = Enabled;
|
||||
EurotruckSimulator2.Default.GameDirectory = GameDirectory;
|
||||
|
||||
EurotruckSimulator2.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
Enabled = true;
|
||||
GameDirectory = string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -9,7 +9,8 @@ namespace Artemis.Modules.Games.EurotruckSimulator2
|
||||
{
|
||||
public sealed class EurotruckSimulator2ViewModel : GameViewModel
|
||||
{
|
||||
public EurotruckSimulator2ViewModel(MainManager main, IProfileEditorVmFactory pFactory, EurotruckSimulator2Model model): base(main, model, pFactory)
|
||||
public EurotruckSimulator2ViewModel(MainManager main, IProfileEditorVmFactory pFactory,
|
||||
EurotruckSimulator2Model model) : base(main, model, pFactory)
|
||||
{
|
||||
DisplayName = "ETS 2";
|
||||
|
||||
|
||||
@ -1,62 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Games.Overwatch {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class Overwatch : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Overwatch defaultInstance = ((Overwatch)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Overwatch())));
|
||||
|
||||
public static Overwatch Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool Enabled {
|
||||
get {
|
||||
return ((bool)(this["Enabled"]));
|
||||
}
|
||||
set {
|
||||
this["Enabled"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Default")]
|
||||
public string LastProfile {
|
||||
get {
|
||||
return ((string)(this["LastProfile"]));
|
||||
}
|
||||
set {
|
||||
this["LastProfile"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string GameDirectory {
|
||||
get {
|
||||
return ((string)(this["GameDirectory"]));
|
||||
}
|
||||
set {
|
||||
this["GameDirectory"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,17 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Modules.Games.Overwatch" GeneratedClassName="Overwatch">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Enabled" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="LastProfile" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">Default</Value>
|
||||
</Setting>
|
||||
<Setting Name="GameDirectory" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -2,10 +2,12 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Media;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Models.Interfaces;
|
||||
using Artemis.Profiles.Layers.Models;
|
||||
using Artemis.Settings;
|
||||
using Artemis.Utilities;
|
||||
|
||||
namespace Artemis.Modules.Games.Overwatch
|
||||
@ -21,7 +23,8 @@ namespace Artemis.Modules.Games.Overwatch
|
||||
private DateTime _ultimateReady;
|
||||
private DateTime _ultimateUsed;
|
||||
|
||||
public OverwatchModel(MainManager mainManager): base(mainManager, new OverwatchSettings(), new OverwatchDataModel())
|
||||
public OverwatchModel(MainManager mainManager)
|
||||
: base(mainManager, SettingsProvider.Load<OverwatchSettings>(), new OverwatchDataModel())
|
||||
{
|
||||
Name = "Overwatch";
|
||||
ProcessName = "Overwatch";
|
||||
@ -133,10 +136,10 @@ namespace Artemis.Modules.Games.Overwatch
|
||||
// Ult can't possibly be ready within 2 seconds of changing, this avoids false positives.
|
||||
// Filtering on ultReady and ultUsed removes false positives from the native ultimate effects
|
||||
// The control keys don't show during character select, so don't continue on those either.
|
||||
if (_characterChange.AddSeconds(2) >= DateTime.Now ||
|
||||
_ultimateUsed.AddSeconds(2) >= DateTime.Now ||
|
||||
_ultimateReady.AddSeconds(2) >= DateTime.Now ||
|
||||
_stickyStatus.Value == OverwatchStatus.InCharacterSelect)
|
||||
if ((_characterChange.AddSeconds(2) >= DateTime.Now) ||
|
||||
(_ultimateUsed.AddSeconds(2) >= DateTime.Now) ||
|
||||
(_ultimateReady.AddSeconds(2) >= DateTime.Now) ||
|
||||
(_stickyStatus.Value == OverwatchStatus.InCharacterSelect))
|
||||
return;
|
||||
|
||||
ParseSpecialKeys(gameDataModel, characterMatch, colors);
|
||||
@ -148,7 +151,7 @@ namespace Artemis.Modules.Games.Overwatch
|
||||
if (string.IsNullOrEmpty(arrayString))
|
||||
return null;
|
||||
var intermediateArray = arrayString.Split('|');
|
||||
if (intermediateArray[0] == "1" || intermediateArray.Length < 2)
|
||||
if ((intermediateArray[0] == "1") || (intermediateArray.Length < 2))
|
||||
return null;
|
||||
var array = intermediateArray[1].Substring(1).Split(' ');
|
||||
if (!array.Any())
|
||||
@ -164,7 +167,7 @@ namespace Artemis.Modules.Games.Overwatch
|
||||
|
||||
// Can't parse to a byte directly since it may contain values >254
|
||||
var parts = intermediate.Split(',').Select(int.Parse).ToArray();
|
||||
if (parts[0] >= 5 && parts[1] >= 21)
|
||||
if ((parts[0] >= 5) && (parts[1] >= 21))
|
||||
continue;
|
||||
|
||||
colors[parts[0], parts[1]] = Color.FromRgb((byte) parts[2], (byte) parts[3], (byte) parts[4]);
|
||||
@ -218,13 +221,13 @@ namespace Artemis.Modules.Games.Overwatch
|
||||
private bool ControlsShown(Color[,] colors)
|
||||
{
|
||||
var keyColor = Color.FromRgb(222, 153, 0);
|
||||
return colors[2, 3] == keyColor || colors[3, 2] == keyColor ||
|
||||
colors[3, 3] == keyColor || colors[3, 4] == keyColor;
|
||||
return (colors[2, 3] == keyColor) || (colors[3, 2] == keyColor) ||
|
||||
(colors[3, 3] == keyColor) || (colors[3, 4] == keyColor);
|
||||
}
|
||||
|
||||
private void ParseSpecialKeys(OverwatchDataModel gameDataModel, CharacterColor? characterMatch, Color[,] colors)
|
||||
{
|
||||
if (characterMatch == null || characterMatch.Value.Character == OverwatchCharacter.None)
|
||||
if ((characterMatch == null) || (characterMatch.Value.Character == OverwatchCharacter.None))
|
||||
return;
|
||||
|
||||
// Ultimate is ready when Q is blinking
|
||||
|
||||
@ -1,36 +1,9 @@
|
||||
using Artemis.Models;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Modules.Games.Overwatch
|
||||
{
|
||||
public class OverwatchSettings : GameSettings
|
||||
{
|
||||
public OverwatchSettings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public string GameDirectory { get; set; }
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
Enabled = Overwatch.Default.Enabled;
|
||||
LastProfile = Overwatch.Default.LastProfile;
|
||||
GameDirectory = Overwatch.Default.GameDirectory;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
Overwatch.Default.Enabled = Enabled;
|
||||
Overwatch.Default.LastProfile = LastProfile;
|
||||
Overwatch.Default.GameDirectory = GameDirectory;
|
||||
|
||||
Overwatch.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
Enabled = true;
|
||||
GameDirectory = string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -22,7 +22,7 @@ namespace Artemis.Modules.Games.Overwatch
|
||||
{
|
||||
var gameSettings = (OverwatchSettings) GameSettings;
|
||||
// If already propertly set up, don't do anything
|
||||
if (gameSettings.GameDirectory != null && File.Exists(gameSettings.GameDirectory + "Overwatch.exe") &&
|
||||
if ((gameSettings.GameDirectory != null) && File.Exists(gameSettings.GameDirectory + "Overwatch.exe") &&
|
||||
File.Exists(gameSettings.GameDirectory + "RzChromaSDK64.dll"))
|
||||
return;
|
||||
|
||||
|
||||
@ -1,50 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Games.RocketLeague {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class RocketLeague : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static RocketLeague defaultInstance = ((RocketLeague)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new RocketLeague())));
|
||||
|
||||
public static RocketLeague Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool Enabled {
|
||||
get {
|
||||
return ((bool)(this["Enabled"]));
|
||||
}
|
||||
set {
|
||||
this["Enabled"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Default")]
|
||||
public string LastProfile {
|
||||
get {
|
||||
return ((string)(this["LastProfile"]));
|
||||
}
|
||||
set {
|
||||
this["LastProfile"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Modules.Games.RocketLeague" GeneratedClassName="RocketLeague">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Enabled" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="LastProfile" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">Default</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -1,12 +1,12 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Profiles.Layers.Models;
|
||||
using Artemis.Settings;
|
||||
using Artemis.Utilities;
|
||||
using Artemis.Utilities.Memory;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Artemis.Modules.Games.RocketLeague
|
||||
{
|
||||
@ -16,7 +16,7 @@ namespace Artemis.Modules.Games.RocketLeague
|
||||
private GamePointersCollection _pointer;
|
||||
|
||||
public RocketLeagueModel(MainManager mainManager)
|
||||
: base(mainManager, new RocketLeagueSettings(), new RocketLeagueDataModel())
|
||||
: base(mainManager, SettingsProvider.Load<RocketLeagueSettings>(), new RocketLeagueDataModel())
|
||||
{
|
||||
Name = "RocketLeague";
|
||||
ProcessName = "RocketLeague";
|
||||
@ -25,20 +25,20 @@ namespace Artemis.Modules.Games.RocketLeague
|
||||
Initialized = false;
|
||||
|
||||
// Generate a new offset when the game is updated
|
||||
//var offset = new GamePointersCollection
|
||||
//{
|
||||
// Game = "RocketLeague",
|
||||
// GameVersion = "1.21",
|
||||
// GameAddresses = new List<GamePointer>
|
||||
// {
|
||||
// new GamePointer
|
||||
// {
|
||||
// Description = "Boost",
|
||||
// BasePointer = new IntPtr(0x016AD528),
|
||||
// Offsets = new[] {0x304, 0x8, 0x50, 0x720, 0x224}
|
||||
// }
|
||||
// }
|
||||
//};
|
||||
// var offset = new GamePointersCollection
|
||||
// {
|
||||
// Game = "RocketLeague",
|
||||
// GameVersion = "1.21",
|
||||
// GameAddresses = new List<GamePointer>
|
||||
// {
|
||||
// new GamePointer
|
||||
// {
|
||||
// Description = "Boost",
|
||||
// BasePointer = new IntPtr(0x016AD528),
|
||||
// Offsets = new[] {0x304, 0x8, 0x50, 0x720, 0x224}
|
||||
// }
|
||||
// }
|
||||
// };
|
||||
//var res = JsonConvert.SerializeObject(offset, Formatting.Indented);
|
||||
}
|
||||
|
||||
@ -55,7 +55,7 @@ namespace Artemis.Modules.Games.RocketLeague
|
||||
Initialized = false;
|
||||
|
||||
Updater.GetPointers();
|
||||
_pointer = JsonConvert.DeserializeObject<GamePointersCollection>(Offsets.Default.RocketLeague);
|
||||
_pointer = SettingsProvider.Load<OffsetSettings>().RocketLeague;
|
||||
|
||||
var tempProcess = MemoryHelpers.GetProcessIfRunning(ProcessName);
|
||||
if (tempProcess == null)
|
||||
@ -68,7 +68,7 @@ namespace Artemis.Modules.Games.RocketLeague
|
||||
|
||||
public override void Update()
|
||||
{
|
||||
if (Profile == null || DataModel == null || _memory == null)
|
||||
if ((Profile == null) || (DataModel == null) || (_memory == null))
|
||||
return;
|
||||
|
||||
var offsets = _pointer.GameAddresses.First(ga => ga.Description == "Boost").ToString();
|
||||
|
||||
@ -1,31 +1,8 @@
|
||||
using Artemis.Models;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Modules.Games.RocketLeague
|
||||
{
|
||||
public class RocketLeagueSettings : GameSettings
|
||||
{
|
||||
public RocketLeagueSettings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
Enabled = RocketLeague.Default.Enabled;
|
||||
LastProfile = RocketLeague.Default.LastProfile;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
RocketLeague.Default.Enabled = Enabled;
|
||||
RocketLeague.Default.LastProfile = LastProfile;
|
||||
|
||||
RocketLeague.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
Enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,10 +1,9 @@
|
||||
using Artemis.InjectionFactories;
|
||||
using Artemis.DAL;
|
||||
using Artemis.InjectionFactories;
|
||||
using Artemis.Managers;
|
||||
using Artemis.Settings;
|
||||
using Artemis.Utilities;
|
||||
using Artemis.Utilities.Memory;
|
||||
using Artemis.ViewModels.Abstract;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Artemis.Modules.Games.RocketLeague
|
||||
{
|
||||
@ -12,7 +11,8 @@ namespace Artemis.Modules.Games.RocketLeague
|
||||
{
|
||||
private string _versionText;
|
||||
|
||||
public RocketLeagueViewModel(MainManager main, IProfileEditorVmFactory pFactory, RocketLeagueModel model) : base(main, model, pFactory)
|
||||
public RocketLeagueViewModel(MainManager main, IProfileEditorVmFactory pFactory, RocketLeagueModel model)
|
||||
: base(main, model, pFactory)
|
||||
{
|
||||
DisplayName = "Rocket League";
|
||||
SetVersionText();
|
||||
@ -33,7 +33,7 @@ namespace Artemis.Modules.Games.RocketLeague
|
||||
|
||||
private void SetVersionText()
|
||||
{
|
||||
if (!DAL.SettingsProvider.Load<GeneralSettings>("GeneralSettings").EnablePointersUpdate)
|
||||
if (!SettingsProvider.Load<GeneralSettings>().EnablePointersUpdate)
|
||||
{
|
||||
VersionText = "Note: You disabled pointer updates, this could result in the " +
|
||||
"Rocket League effect not working after a game update.";
|
||||
@ -41,9 +41,7 @@ namespace Artemis.Modules.Games.RocketLeague
|
||||
}
|
||||
|
||||
Updater.GetPointers();
|
||||
var version = JsonConvert
|
||||
.DeserializeObject<GamePointersCollection>(Offsets.Default.RocketLeague)
|
||||
.GameVersion;
|
||||
var version = SettingsProvider.Load<OffsetSettings>().RocketLeague.GameVersion;
|
||||
VersionText = $"Note: Requires patch {version}. When a new patch is released Artemis downloads " +
|
||||
"new pointers for the latest version (unless disabled in settings).";
|
||||
}
|
||||
|
||||
@ -1,50 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Games.TheDivision {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class TheDivision : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static TheDivision defaultInstance = ((TheDivision)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new TheDivision())));
|
||||
|
||||
public static TheDivision Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool Enabled {
|
||||
get {
|
||||
return ((bool)(this["Enabled"]));
|
||||
}
|
||||
set {
|
||||
this["Enabled"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Default")]
|
||||
public string LastProfile {
|
||||
get {
|
||||
return ((string)(this["LastProfile"]));
|
||||
}
|
||||
set {
|
||||
this["LastProfile"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Modules.Games.TheDivision" GeneratedClassName="TheDivision">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Enabled" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="LastProfile" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">Default</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -1,6 +1,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Profiles.Layers.Models;
|
||||
@ -15,7 +16,7 @@ namespace Artemis.Modules.Games.TheDivision
|
||||
private StickyValue<bool> _stickyHp;
|
||||
|
||||
public TheDivisionModel(MainManager mainManager)
|
||||
: base(mainManager, new TheDivisionSettings(), new TheDivisionDataModel())
|
||||
: base(mainManager, SettingsProvider.Load<TheDivisionSettings>(), new TheDivisionDataModel())
|
||||
{
|
||||
Name = "TheDivision";
|
||||
ProcessName = "TheDivision";
|
||||
@ -81,7 +82,7 @@ namespace Artemis.Modules.Games.TheDivision
|
||||
var bPer = parts[4];
|
||||
|
||||
// F1 to F4 indicate the player and his party. Blinks red on damage taken
|
||||
if (keyCode >= 59 && keyCode <= 62)
|
||||
if ((keyCode >= 59) && (keyCode <= 62))
|
||||
{
|
||||
var playerId = keyCode - 58;
|
||||
|
||||
@ -105,15 +106,15 @@ namespace Artemis.Modules.Games.TheDivision
|
||||
// R blinks white when low on ammo
|
||||
else if (keyCode == 19)
|
||||
{
|
||||
_stickyAmmo.Value = rPer == 100 && gPer > 1 && bPer > 1;
|
||||
_stickyAmmo.Value = (rPer == 100) && (gPer > 1) && (bPer > 1);
|
||||
gameDataModel.LowAmmo = _stickyAmmo.Value;
|
||||
}
|
||||
// G turns white when holding a grenade, turns off when out of grenades
|
||||
else if (keyCode == 34)
|
||||
{
|
||||
if (rPer == 100 && gPer < 10 && bPer < 10)
|
||||
if ((rPer == 100) && (gPer < 10) && (bPer < 10))
|
||||
gameDataModel.GrenadeState = GrenadeState.HasGrenade;
|
||||
else if (rPer == 100 && gPer > 10 && bPer > 10)
|
||||
else if ((rPer == 100) && (gPer > 10) && (bPer > 10))
|
||||
gameDataModel.GrenadeState = GrenadeState.GrenadeEquipped;
|
||||
else
|
||||
gameDataModel.GrenadeState = GrenadeState.HasNoGrenade;
|
||||
@ -121,7 +122,7 @@ namespace Artemis.Modules.Games.TheDivision
|
||||
// V blinks on low HP
|
||||
else if (keyCode == 47)
|
||||
{
|
||||
_stickyHp.Value = rPer == 100 && gPer > 1 && bPer > 1;
|
||||
_stickyHp.Value = (rPer == 100) && (gPer > 1) && (bPer > 1);
|
||||
gameDataModel.LowHp = _stickyHp.Value;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,31 +1,8 @@
|
||||
using Artemis.Models;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Modules.Games.TheDivision
|
||||
{
|
||||
public class TheDivisionSettings : GameSettings
|
||||
{
|
||||
public TheDivisionSettings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
Enabled = TheDivision.Default.Enabled;
|
||||
LastProfile = TheDivision.Default.LastProfile;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
TheDivision.Default.Enabled = Enabled;
|
||||
TheDivision.Default.LastProfile = LastProfile;
|
||||
|
||||
TheDivision.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
Enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,62 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Games.UnrealTournament {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class UnrealTournament : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static UnrealTournament defaultInstance = ((UnrealTournament)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new UnrealTournament())));
|
||||
|
||||
public static UnrealTournament Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool Enabled {
|
||||
get {
|
||||
return ((bool)(this["Enabled"]));
|
||||
}
|
||||
set {
|
||||
this["Enabled"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Default")]
|
||||
public string LastProfile {
|
||||
get {
|
||||
return ((string)(this["LastProfile"]));
|
||||
}
|
||||
set {
|
||||
this["LastProfile"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||
public string GameDirectory {
|
||||
get {
|
||||
return ((string)(this["GameDirectory"]));
|
||||
}
|
||||
set {
|
||||
this["GameDirectory"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,17 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Modules.Games.UnrealTournament" GeneratedClassName="UnrealTournament">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Enabled" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="LastProfile" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">Default</Value>
|
||||
</Setting>
|
||||
<Setting Name="GameDirectory" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -32,17 +32,25 @@ namespace Artemis.Modules.Games.UnrealTournament
|
||||
public string PlayerName { get; set; }
|
||||
public string UniqueId { get; set; }
|
||||
public int Score { get; set; }
|
||||
|
||||
[JsonProperty("Team Num")]
|
||||
public int TeamNum { get; set; }
|
||||
|
||||
public int RankCheck { get; set; }
|
||||
|
||||
[JsonProperty("Duel Rank")]
|
||||
public int DuelRank { get; set; }
|
||||
|
||||
public int No_of_Duel_Played { get; set; }
|
||||
|
||||
[JsonProperty("CTF Rank")]
|
||||
public int CTFRank { get; set; }
|
||||
|
||||
public int No_CTF_MatchesPlayed { get; set; }
|
||||
|
||||
[JsonProperty("TDM Rank")]
|
||||
public int TDMRank { get; set; }
|
||||
|
||||
public int No_TDM_MatchesPlayed { get; set; }
|
||||
public int DMRank { get; set; }
|
||||
public int No_DM_Matches_Played { get; set; }
|
||||
@ -100,5 +108,4 @@ namespace Artemis.Modules.Games.UnrealTournament
|
||||
public int RespawnWaitTime { get; set; }
|
||||
public int ForceRespawnTime { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Profiles.Layers.Models;
|
||||
@ -9,8 +10,8 @@ namespace Artemis.Modules.Games.UnrealTournament
|
||||
{
|
||||
public class UnrealTournamentModel : GameModel
|
||||
{
|
||||
public UnrealTournamentModel(MainManager mainManager, UnrealTournamentSettings settings)
|
||||
: base(mainManager, settings, new UnrealTournamentDataModel())
|
||||
public UnrealTournamentModel(MainManager mainManager)
|
||||
: base(mainManager, SettingsProvider.Load<UnrealTournamentSettings>(), new UnrealTournamentDataModel())
|
||||
{
|
||||
Name = "UnrealTournament";
|
||||
ProcessName = "UE4-Win64-Shipping";
|
||||
|
||||
@ -1,36 +1,9 @@
|
||||
using Artemis.Models;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Modules.Games.UnrealTournament
|
||||
{
|
||||
public class UnrealTournamentSettings : GameSettings
|
||||
{
|
||||
public UnrealTournamentSettings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public string GameDirectory { get; set; }
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
Enabled = UnrealTournament.Default.Enabled;
|
||||
LastProfile = UnrealTournament.Default.LastProfile;
|
||||
GameDirectory = UnrealTournament.Default.GameDirectory;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
UnrealTournament.Default.Enabled = Enabled;
|
||||
UnrealTournament.Default.LastProfile = LastProfile;
|
||||
UnrealTournament.Default.GameDirectory = GameDirectory;
|
||||
|
||||
UnrealTournament.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
Enabled = true;
|
||||
GameDirectory = string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -32,7 +32,8 @@ namespace Artemis.Modules.Games.UnrealTournament
|
||||
{
|
||||
var gameSettings = (UnrealTournamentSettings) GameSettings;
|
||||
// If already propertly set up, don't do anything
|
||||
if (gameSettings.GameDirectory != null && File.Exists(gameSettings.GameDirectory + "UE4-Win64-Shipping.exe"))
|
||||
if ((gameSettings.GameDirectory != null) &&
|
||||
File.Exists(gameSettings.GameDirectory + "UE4-Win64-Shipping.exe"))
|
||||
return;
|
||||
|
||||
// Attempt to read the file
|
||||
@ -119,7 +120,8 @@ namespace Artemis.Modules.Games.UnrealTournament
|
||||
{
|
||||
var gif = Resources.redeemer;
|
||||
ProfileProvider.InsertGif(ProfileProvider.GetAll()
|
||||
.Where(p => p.GameName == "UnrealTournament" && p.Name == "Default"), "Redeemer GIF", gif, "redeemer");
|
||||
.Where(p => (p.GameName == "UnrealTournament") && (p.Name == "Default")), "Redeemer GIF", gif,
|
||||
"redeemer");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,50 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Games.Witcher3 {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class Witcher3 : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Witcher3 defaultInstance = ((Witcher3)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Witcher3())));
|
||||
|
||||
public static Witcher3 Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool Enabled {
|
||||
get {
|
||||
return ((bool)(this["Enabled"]));
|
||||
}
|
||||
set {
|
||||
this["Enabled"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Default")]
|
||||
public string LastProfile {
|
||||
get {
|
||||
return ((string)(this["LastProfile"]));
|
||||
}
|
||||
set {
|
||||
this["LastProfile"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Modules.Games.Witcher3" GeneratedClassName="Witcher3">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Enabled" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="LastProfile" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">Default</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -4,6 +4,7 @@ using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Profiles.Layers.Models;
|
||||
@ -17,7 +18,7 @@ namespace Artemis.Modules.Games.Witcher3
|
||||
private string _witcherSettings;
|
||||
|
||||
public Witcher3Model(MainManager mainManager)
|
||||
: base(mainManager, new Witcher3Settings(), new Witcher3DataModel())
|
||||
: base(mainManager, SettingsProvider.Load<Witcher3Settings>(), new Witcher3DataModel())
|
||||
{
|
||||
Name = "Witcher3";
|
||||
ProcessName = "witcher3";
|
||||
|
||||
@ -1,31 +1,10 @@
|
||||
using Artemis.Models;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Modules.Games.Witcher3
|
||||
{
|
||||
public class Witcher3Settings : GameSettings
|
||||
{
|
||||
public Witcher3Settings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
Enabled = Witcher3.Default.Enabled;
|
||||
LastProfile = Witcher3.Default.LastProfile;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
Witcher3.Default.Enabled = Enabled;
|
||||
Witcher3.Default.LastProfile = LastProfile;
|
||||
|
||||
Witcher3.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
Enabled = true;
|
||||
}
|
||||
// TODO: Change this to work the same as UT
|
||||
public string GameDirectory { get; set; }
|
||||
}
|
||||
}
|
||||
@ -60,8 +60,6 @@ namespace Artemis.Modules.Games.Witcher3
|
||||
Directory.GetFiles(dialog.SelectedPath + @"\mods", "playerWitcher.ws", SearchOption.AllDirectories)
|
||||
.FirstOrDefault();
|
||||
if (file != null)
|
||||
{
|
||||
// Don't trip over our own mod
|
||||
if (!file.Contains("modArtemis"))
|
||||
{
|
||||
var viewHelp = await
|
||||
@ -82,7 +80,6 @@ namespace Artemis.Modules.Games.Witcher3
|
||||
new ProcessStartInfo("https://github.com/SpoinkyNL/Artemis/wiki/The-Witcher-3"));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
archive.ExtractToDirectory(dialog.SelectedPath, true);
|
||||
|
||||
@ -1,50 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Modules.Games.WorldofWarcraft {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class WoW : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static WoW defaultInstance = ((WoW)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new WoW())));
|
||||
|
||||
public static WoW Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||
public bool Enabled {
|
||||
get {
|
||||
return ((bool)(this["Enabled"]));
|
||||
}
|
||||
set {
|
||||
this["Enabled"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("Default")]
|
||||
public string LastProfile {
|
||||
get {
|
||||
return ((string)(this["LastProfile"]));
|
||||
}
|
||||
set {
|
||||
this["LastProfile"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Modules.Games.WoW" GeneratedClassName="WoW">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="Enabled" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
<Setting Name="LastProfile" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">Default</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@ -10,7 +10,7 @@
|
||||
// {
|
||||
// private Memory _memory;
|
||||
//
|
||||
// public WoWModel(MainManager mainManager): base(mainManager, new WoWSettings(), new WoWDataModel())
|
||||
// public WoWModel(MainManager mainManager): base(mainManager, SettingsProvider.Load<WoWSettings>(), new WoWDataModel())
|
||||
// {
|
||||
// Name = "WoW";
|
||||
// ProcessName = "Wow-64";
|
||||
@ -50,4 +50,5 @@
|
||||
// return Profile.GetRenderLayers(DataModel, keyboardOnly);
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//}
|
||||
|
||||
|
||||
@ -1,31 +1,11 @@
|
||||
using Artemis.Models;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Modules.Games.WorldofWarcraft
|
||||
{
|
||||
public class WoWSettings : GameSettings
|
||||
{
|
||||
public WoWSettings()
|
||||
private WoWSettings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
Enabled = WoW.Default.Enabled;
|
||||
LastProfile = WoW.Default.LastProfile;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
WoW.Default.Enabled = Enabled;
|
||||
WoW.Default.LastProfile = LastProfile;
|
||||
|
||||
WoW.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
Enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -11,4 +11,5 @@
|
||||
// DisplayName = "WoW";
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//}
|
||||
|
||||
|
||||
@ -1,39 +1,11 @@
|
||||
using System.Windows.Media;
|
||||
using Artemis.Models;
|
||||
using Artemis.Settings;
|
||||
|
||||
namespace Artemis.Modules.Overlays.VolumeDisplay
|
||||
{
|
||||
public class VolumeDisplaySettings : OverlaySettings
|
||||
{
|
||||
public VolumeDisplaySettings()
|
||||
{
|
||||
Load();
|
||||
}
|
||||
|
||||
public Color MainColor { get; set; }
|
||||
public Color SecondaryColor { get; set; }
|
||||
|
||||
public sealed override void Load()
|
||||
{
|
||||
Enabled = VolumeDisplay.Default.Enabled;
|
||||
MainColor = VolumeDisplay.Default.MainColor;
|
||||
SecondaryColor = VolumeDisplay.Default.SecondaryColor;
|
||||
}
|
||||
|
||||
public sealed override void Save()
|
||||
{
|
||||
VolumeDisplay.Default.Enabled = Enabled;
|
||||
VolumeDisplay.Default.MainColor = MainColor;
|
||||
VolumeDisplay.Default.SecondaryColor = SecondaryColor;
|
||||
|
||||
VolumeDisplay.Default.Save();
|
||||
}
|
||||
|
||||
public sealed override void ToDefault()
|
||||
{
|
||||
Enabled = true;
|
||||
MainColor = Color.FromArgb(255, 38, 246, 0);
|
||||
SecondaryColor = Color.FromArgb(255, 255, 41, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
24
Artemis/Artemis/Settings/EffectSettings.cs
Normal file
24
Artemis/Artemis/Settings/EffectSettings.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using Artemis.DAL;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Artemis.Settings
|
||||
{
|
||||
public class EffectSettings : IArtemisSettings
|
||||
{
|
||||
public void Save()
|
||||
{
|
||||
SettingsProvider.Save(this);
|
||||
}
|
||||
|
||||
public void Reset(bool save = false)
|
||||
{
|
||||
JsonConvert.PopulateObject("{}", this, new JsonSerializerSettings
|
||||
{
|
||||
ObjectCreationHandling = ObjectCreationHandling.Reuse
|
||||
});
|
||||
|
||||
if (save)
|
||||
SettingsProvider.Save(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
16
Artemis/Artemis/Settings/GameSettings.cs
Normal file
16
Artemis/Artemis/Settings/GameSettings.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using System.ComponentModel;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Artemis.Settings
|
||||
{
|
||||
public abstract class GameSettings : EffectSettings
|
||||
{
|
||||
[DefaultValue(true)]
|
||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
[DefaultValue("Default")]
|
||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
||||
public string LastProfile { get; set; }
|
||||
}
|
||||
}
|
||||
@ -6,6 +6,7 @@ using System.Runtime.InteropServices.ComTypes;
|
||||
using System.Windows;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Utilities;
|
||||
using Caliburn.Micro;
|
||||
using MahApps.Metro;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
@ -16,7 +17,6 @@ namespace Artemis.Settings
|
||||
public GeneralSettings()
|
||||
{
|
||||
ThemeManager.AddAccent("CorsairYellow", new Uri("pack://application:,,,/Styles/Accents/CorsairYellow.xaml"));
|
||||
ApplyTheme();
|
||||
}
|
||||
|
||||
[DefaultValue("WindowsProfile")]
|
||||
@ -59,8 +59,6 @@ namespace Artemis.Settings
|
||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
||||
public string LogLevel { get; set; }
|
||||
|
||||
public string Name { get; } = "GeneralSettings";
|
||||
|
||||
public void Save()
|
||||
{
|
||||
SettingsProvider.Save(this);
|
||||
@ -70,6 +68,17 @@ namespace Artemis.Settings
|
||||
Logging.SetupLogging(LogLevel);
|
||||
}
|
||||
|
||||
public void Reset(bool save = false)
|
||||
{
|
||||
JsonConvert.PopulateObject("{}", this, new JsonSerializerSettings
|
||||
{
|
||||
ObjectCreationHandling = ObjectCreationHandling.Reuse
|
||||
});
|
||||
|
||||
if (save)
|
||||
SettingsProvider.Save(this);
|
||||
}
|
||||
|
||||
private void ApplyGamestatePort()
|
||||
{
|
||||
// TODO: Restart Gamestate server with new port
|
||||
@ -90,27 +99,30 @@ namespace Artemis.Settings
|
||||
File.Delete(startupFolder + @"\Artemis.lnk");
|
||||
}
|
||||
|
||||
private void ApplyTheme()
|
||||
public void ApplyTheme()
|
||||
{
|
||||
switch (Theme)
|
||||
Execute.OnUIThread(delegate
|
||||
{
|
||||
case "Light":
|
||||
ThemeManager.ChangeAppStyle(Application.Current, ThemeManager.GetAccent("Teal"),
|
||||
ThemeManager.GetAppTheme("BaseLight"));
|
||||
break;
|
||||
case "Dark":
|
||||
ThemeManager.ChangeAppStyle(Application.Current, ThemeManager.GetAccent("Teal"),
|
||||
ThemeManager.GetAppTheme("BaseDark"));
|
||||
break;
|
||||
case "Corsair Light":
|
||||
ThemeManager.ChangeAppStyle(Application.Current, ThemeManager.GetAccent("CorsairYellow"),
|
||||
ThemeManager.GetAppTheme("BaseLight"));
|
||||
break;
|
||||
case "Corsair Dark":
|
||||
ThemeManager.ChangeAppStyle(Application.Current, ThemeManager.GetAccent("CorsairYellow"),
|
||||
ThemeManager.GetAppTheme("BaseDark"));
|
||||
break;
|
||||
}
|
||||
switch (Theme)
|
||||
{
|
||||
case "Light":
|
||||
ThemeManager.ChangeAppStyle(Application.Current, ThemeManager.GetAccent("Teal"),
|
||||
ThemeManager.GetAppTheme("BaseLight"));
|
||||
break;
|
||||
case "Dark":
|
||||
ThemeManager.ChangeAppStyle(Application.Current, ThemeManager.GetAccent("Teal"),
|
||||
ThemeManager.GetAppTheme("BaseDark"));
|
||||
break;
|
||||
case "Corsair Light":
|
||||
ThemeManager.ChangeAppStyle(Application.Current, ThemeManager.GetAccent("CorsairYellow"),
|
||||
ThemeManager.GetAppTheme("BaseLight"));
|
||||
break;
|
||||
case "Corsair Dark":
|
||||
ThemeManager.ChangeAppStyle(Application.Current, ThemeManager.GetAccent("CorsairYellow"),
|
||||
ThemeManager.GetAppTheme("BaseDark"));
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2,7 +2,16 @@
|
||||
{
|
||||
public interface IArtemisSettings
|
||||
{
|
||||
string Name { get; }
|
||||
/// <summary>
|
||||
/// Utility method for quickly saving this instance of settings.
|
||||
/// Some settings might wrap logic around this
|
||||
/// </summary>
|
||||
void Save();
|
||||
|
||||
/// <summary>
|
||||
/// Resets this settings instance to its default values
|
||||
/// </summary>
|
||||
/// <param name="save">Save the settings after resetting them</param>
|
||||
void Reset(bool save = false);
|
||||
}
|
||||
}
|
||||
27
Artemis/Artemis/Settings/OffsetSettings.cs
Normal file
27
Artemis/Artemis/Settings/OffsetSettings.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using Artemis.DAL;
|
||||
using Artemis.Utilities.Memory;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Artemis.Settings
|
||||
{
|
||||
public class OffsetSettings : IArtemisSettings
|
||||
{
|
||||
public GamePointersCollection RocketLeague { get; set; }
|
||||
|
||||
public void Save()
|
||||
{
|
||||
SettingsProvider.Save(this);
|
||||
}
|
||||
|
||||
public void Reset(bool save = false)
|
||||
{
|
||||
JsonConvert.PopulateObject("{}", this, new JsonSerializerSettings
|
||||
{
|
||||
ObjectCreationHandling = ObjectCreationHandling.Reuse
|
||||
});
|
||||
|
||||
if (save)
|
||||
SettingsProvider.Save(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
52
Artemis/Artemis/Settings/Offsets.Designer.cs
generated
52
Artemis/Artemis/Settings/Offsets.Designer.cs
generated
@ -1,52 +0,0 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace Artemis.Settings {
|
||||
|
||||
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
|
||||
internal sealed partial class Offsets : global::System.Configuration.ApplicationSettingsBase {
|
||||
|
||||
private static Offsets defaultInstance = ((Offsets)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Offsets())));
|
||||
|
||||
public static Offsets Default {
|
||||
get {
|
||||
return defaultInstance;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("{\"Game\":\"RocketLeague\",\"GameVersion\":\"1.10\",\"GameAddresses\":[{\"Description\":\"Boos" +
|
||||
"t\",\"BasePointer\":{\"value\":21998084},\"Offsets\":[88,1452,1780,540]}]}")]
|
||||
public string RocketLeague {
|
||||
get {
|
||||
return ((string)(this["RocketLeague"]));
|
||||
}
|
||||
set {
|
||||
this["RocketLeague"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Configuration.DefaultSettingValueAttribute("{\"Game\":\"Witcher3\",\"GameVersion\":\"1.11\",\"GameAddresses\":[{\"Description\":\"Sign\",\"B" +
|
||||
"asePointer\":{\"value\":42942304},\"Offsets\":[40,16,32,3008]}]}")]
|
||||
public string Witcher3 {
|
||||
get {
|
||||
return ((string)(this["Witcher3"]));
|
||||
}
|
||||
set {
|
||||
this["Witcher3"] = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,14 +0,0 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
|
||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"
|
||||
GeneratedClassNamespace="Artemis.Settings" GeneratedClassName="Offsets">
|
||||
<Profiles />
|
||||
<Settings>
|
||||
<Setting Name="RocketLeague" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">{"Game":"RocketLeague","GameVersion":"1.10","GameAddresses":[{"Description":"Boost","BasePointer":{"value":21998084},"Offsets":[88,1452,1780,540]}]}</Value>
|
||||
</Setting>
|
||||
<Setting Name="Witcher3" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)">{"Game":"Witcher3","GameVersion":"1.11","GameAddresses":[{"Description":"Sign","BasePointer":{"value":42942304},"Offsets":[40,16,32,3008]}]}</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
12
Artemis/Artemis/Settings/OverlaySettings.cs
Normal file
12
Artemis/Artemis/Settings/OverlaySettings.cs
Normal file
@ -0,0 +1,12 @@
|
||||
using System.ComponentModel;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Artemis.Settings
|
||||
{
|
||||
public class OverlaySettings : EffectSettings
|
||||
{
|
||||
[DefaultValue(true)]
|
||||
[JsonProperty(DefaultValueHandling = DefaultValueHandling.Populate)]
|
||||
public bool Enabled { get; set; }
|
||||
}
|
||||
}
|
||||
@ -2,9 +2,10 @@
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Threading;
|
||||
using System.Windows.Forms;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Settings;
|
||||
using Newtonsoft.Json;
|
||||
using Ninject.Extensions.Logging;
|
||||
|
||||
namespace Artemis.Utilities.GameState
|
||||
{
|
||||
@ -17,12 +18,15 @@ namespace Artemis.Utilities.GameState
|
||||
public delegate void GameDataReceivedEventHandler(
|
||||
object sender, GameDataReceivedEventArgs gameDataReceivedEventArgs);
|
||||
|
||||
private readonly ILogger _logger;
|
||||
|
||||
private readonly AutoResetEvent _waitForConnection = new AutoResetEvent(false);
|
||||
|
||||
private HttpListener _listener;
|
||||
|
||||
public GameStateWebServer()
|
||||
public GameStateWebServer(ILogger logger)
|
||||
{
|
||||
_logger = logger;
|
||||
Start();
|
||||
}
|
||||
|
||||
@ -36,7 +40,7 @@ namespace Artemis.Utilities.GameState
|
||||
if (Running)
|
||||
return;
|
||||
|
||||
Port = DAL.SettingsProvider.Load<GeneralSettings>("GeneralSettings").GamestatePort;
|
||||
Port = SettingsProvider.Load<GeneralSettings>().GamestatePort;
|
||||
|
||||
_listener = new HttpListener();
|
||||
_listener.Prefixes.Add($"http://localhost:{Port}/");
|
||||
@ -45,10 +49,9 @@ namespace Artemis.Utilities.GameState
|
||||
{
|
||||
_listener.Start();
|
||||
}
|
||||
catch (HttpListenerException)
|
||||
catch (HttpListenerException e)
|
||||
{
|
||||
MessageBox.Show("Couldn't start the webserver. CS:GO/Dota2 effects won't work :c \n\n" +
|
||||
"Try changing the port in Settings and restart Artemis.");
|
||||
_logger.Error(e, "Couldn't start the webserver on port {0}.", Port);
|
||||
Running = false;
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1,13 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Configuration;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Settings;
|
||||
using Artemis.Utilities.Memory;
|
||||
using Newtonsoft.Json;
|
||||
using Squirrel;
|
||||
using SettingsProvider = Artemis.DAL.SettingsProvider;
|
||||
|
||||
namespace Artemis.Utilities
|
||||
{
|
||||
@ -16,7 +15,7 @@ namespace Artemis.Utilities
|
||||
public static async void UpdateApp()
|
||||
{
|
||||
// Only update if the user allows it
|
||||
if (!SettingsProvider.Load<GeneralSettings>("GeneralSettings").AutoUpdate)
|
||||
if (!SettingsProvider.Load<GeneralSettings>().AutoUpdate)
|
||||
return;
|
||||
|
||||
// TODO: Remove prerelease before releasing
|
||||
@ -48,7 +47,7 @@ namespace Artemis.Utilities
|
||||
private static void AppUninstall(IUpdateManager mgr)
|
||||
{
|
||||
// Use GeneralSettings to get rid of the autorun shortcut
|
||||
var fakeSettings = new GeneralSettings { Autorun = false };
|
||||
var fakeSettings = new GeneralSettings {Autorun = false};
|
||||
fakeSettings.ApplyAutorun();
|
||||
|
||||
mgr.RemoveShortcutForThisExe();
|
||||
@ -56,32 +55,60 @@ namespace Artemis.Utilities
|
||||
|
||||
public static void GetPointers()
|
||||
{
|
||||
if (!DAL.SettingsProvider.Load<GeneralSettings>("GeneralSettings").EnablePointersUpdate)
|
||||
if (!SettingsProvider.Load<GeneralSettings>().EnablePointersUpdate)
|
||||
{
|
||||
LoadNullDefaults();
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var jsonClient = new WebClient();
|
||||
|
||||
var offsetSettings = SettingsProvider.Load<OffsetSettings>();
|
||||
// Random number to get around cache issues
|
||||
var rand = new Random(DateTime.Now.Millisecond);
|
||||
var json = jsonClient.DownloadString(
|
||||
"https://raw.githubusercontent.com/SpoinkyNL/Artemis/master/pointers.json?random=" + rand.Next());
|
||||
var json = jsonClient.DownloadString("https://raw.githubusercontent.com/SpoinkyNL/" +
|
||||
"Artemis/master/pointers.json?random=" + rand.Next());
|
||||
|
||||
// Get a list of pointers
|
||||
var pointers = JsonConvert.DeserializeObject<List<GamePointersCollection>>(json);
|
||||
|
||||
// Assign each pointer to the settings file
|
||||
var rlPointers = JsonConvert.SerializeObject(pointers.FirstOrDefault(p => p.Game == "RocketLeague"));
|
||||
if (rlPointers != null)
|
||||
{
|
||||
Offsets.Default.RocketLeague = rlPointers;
|
||||
Offsets.Default.Save();
|
||||
}
|
||||
if (pointers.FirstOrDefault(p => p.Game == "RocketLeague") != null)
|
||||
offsetSettings.RocketLeague = pointers.FirstOrDefault(p => p.Game == "RocketLeague");
|
||||
|
||||
offsetSettings.Save();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// ignored
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// JSON default value handling can only go so far, so the update will take care of defaults
|
||||
/// on the offsets if they are null
|
||||
/// </summary>
|
||||
private static void LoadNullDefaults()
|
||||
{
|
||||
var offsetSettings = SettingsProvider.Load<OffsetSettings>();
|
||||
if (offsetSettings.RocketLeague == null)
|
||||
offsetSettings.RocketLeague = new GamePointersCollection
|
||||
{
|
||||
Game = "RocketLeague",
|
||||
GameVersion = "1.21",
|
||||
GameAddresses = new List<GamePointer>
|
||||
{
|
||||
new GamePointer
|
||||
{
|
||||
Description = "Boost",
|
||||
BasePointer = new IntPtr(0x016AD528),
|
||||
Offsets = new[] {0x304, 0x8, 0x50, 0x720, 0x224}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
offsetSettings.Save();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,8 +1,10 @@
|
||||
using System;
|
||||
using Artemis.DAL;
|
||||
using Artemis.Events;
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Services;
|
||||
using Artemis.Settings;
|
||||
using Caliburn.Micro;
|
||||
using Ninject;
|
||||
|
||||
@ -90,7 +92,7 @@ namespace Artemis.ViewModels.Abstract
|
||||
if (!resetConfirm.Value)
|
||||
return;
|
||||
|
||||
EffectSettings.ToDefault();
|
||||
EffectSettings.Reset(true);
|
||||
NotifyOfPropertyChange(() => EffectSettings);
|
||||
|
||||
SaveSettings();
|
||||
|
||||
@ -4,6 +4,7 @@ using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Modules.Effects.ProfilePreview;
|
||||
using Artemis.Services;
|
||||
using Artemis.Settings;
|
||||
using Artemis.ViewModels.Profiles;
|
||||
using Caliburn.Micro;
|
||||
using Ninject;
|
||||
@ -80,7 +81,7 @@ namespace Artemis.ViewModels.Abstract
|
||||
if (!resetConfirm.Value)
|
||||
return;
|
||||
|
||||
GameSettings.ToDefault();
|
||||
GameSettings.Reset(true);
|
||||
NotifyOfPropertyChange(() => GameSettings);
|
||||
|
||||
SaveSettings();
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
using Artemis.Managers;
|
||||
using Artemis.Models;
|
||||
using Artemis.Services;
|
||||
using Artemis.Settings;
|
||||
using Caliburn.Micro;
|
||||
using Ninject;
|
||||
|
||||
@ -53,7 +54,7 @@ namespace Artemis.ViewModels.Abstract
|
||||
if (!resetConfirm.Value)
|
||||
return;
|
||||
|
||||
OverlaySettings.ToDefault();
|
||||
OverlaySettings.Reset(true);
|
||||
NotifyOfPropertyChange(() => OverlaySettings);
|
||||
|
||||
OverlayModel.Enabled = OverlaySettings.Enabled;
|
||||
|
||||
@ -32,7 +32,7 @@ namespace Artemis.ViewModels.Flyouts
|
||||
MainManager = mainManager;
|
||||
Header = "Settings";
|
||||
Position = Position.Right;
|
||||
GeneralSettings = SettingsProvider.Load<GeneralSettings>("GeneralSettings");
|
||||
GeneralSettings = SettingsProvider.Load<GeneralSettings>();
|
||||
|
||||
LogLevels = new BindableCollection<string>();
|
||||
LogLevels.AddRange(LogLevel.AllLoggingLevels.Select(l => l.Name));
|
||||
@ -201,9 +201,7 @@ namespace Artemis.ViewModels.Flyouts
|
||||
|
||||
public void ResetSettings()
|
||||
{
|
||||
IArtemisSettings generalSettings = GeneralSettings;
|
||||
SettingsProvider.SetToDefault(ref generalSettings);
|
||||
GeneralSettings.Save();
|
||||
GeneralSettings.Reset(true);
|
||||
NotifyOfPropertyChange(() => GeneralSettings);
|
||||
}
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ namespace Artemis.ViewModels
|
||||
MainManager.EnableProgram();
|
||||
MainManager.OnEnabledChangedEvent += MainManagerOnOnEnabledChangedEvent;
|
||||
|
||||
var generalSettings = SettingsProvider.Load<GeneralSettings>("GeneralSettings");
|
||||
var generalSettings = SettingsProvider.Load<GeneralSettings>();
|
||||
Enabled = !generalSettings.Suspended;
|
||||
if (generalSettings.ShowOnStartup)
|
||||
ShowWindow();
|
||||
@ -116,6 +116,7 @@ namespace Artemis.ViewModels
|
||||
NotifyOfPropertyChange(() => CanHideWindow);
|
||||
|
||||
ShowKeyboardDialog();
|
||||
SettingsProvider.Load<GeneralSettings>().ApplyTheme();
|
||||
CheckDuplicateInstances();
|
||||
}
|
||||
|
||||
@ -132,7 +133,8 @@ namespace Artemis.ViewModels
|
||||
|
||||
DialogService.ShowMessageBox("Multiple instances found",
|
||||
"It looks like there are multiple running instances of Artemis. " +
|
||||
"This can cause issues. If so, please make sure Artemis isn't already running");
|
||||
"This can cause issues, especially with CS:GO and Dota2. " +
|
||||
"If so, please make sure Artemis isn't already running");
|
||||
}
|
||||
|
||||
private async void ShowKeyboardDialog()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user