diff --git a/Artemis/Artemis/Artemis.csproj b/Artemis/Artemis/Artemis.csproj index d69864d32..e91f5adb4 100644 --- a/Artemis/Artemis/Artemis.csproj +++ b/Artemis/Artemis/Artemis.csproj @@ -379,6 +379,13 @@ GtaVView.xaml + + + + + LightFxView.xaml + + @@ -834,6 +841,10 @@ Designer MSBuild:Compile + + MSBuild:Compile + Designer + Designer MSBuild:Compile diff --git a/Artemis/Artemis/Modules/Games/LightFx/LightFxDataModel.cs b/Artemis/Artemis/Modules/Games/LightFx/LightFxDataModel.cs new file mode 100644 index 000000000..0807b5eca --- /dev/null +++ b/Artemis/Artemis/Modules/Games/LightFx/LightFxDataModel.cs @@ -0,0 +1,15 @@ +using Artemis.Models.Interfaces; +using MoonSharp.Interpreter; + +namespace Artemis.Modules.Games.LightFx +{ + [MoonSharpUserData] + public class LightFxDataModel : IDataModel + { + public LightFxDataModel() + { + + } + + } +} \ No newline at end of file diff --git a/Artemis/Artemis/Modules/Games/LightFx/LightFxModel.cs b/Artemis/Artemis/Modules/Games/LightFx/LightFxModel.cs new file mode 100644 index 000000000..2b1cd4835 --- /dev/null +++ b/Artemis/Artemis/Modules/Games/LightFx/LightFxModel.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using Artemis.DAL; +using Artemis.Managers; +using Artemis.Models; +using Artemis.Profiles.Layers.Models; +using Artemis.Utilities.GameState; + +namespace Artemis.Modules.Games.LightFx +{ + public class LightFxModel : GameModel + { + public LightFxModel(DeviceManager deviceManager, GameStateWebServer gameStateWebServer) + : base(deviceManager, SettingsProvider.Load(), new LightFxDataModel()) + { + Name = "LightFX"; + ProcessName = "LoL"; + Scale = 4; + Enabled = Settings.Enabled; + Initialized = false; + + // This model can enable itself by changing its process name to the currently running Light FX game. + gameStateWebServer.GameDataReceived += GameStateWebServerOnGameDataReceived; + } + + private void GameStateWebServerOnGameDataReceived(object sender, GameDataReceivedEventArgs e) + { + var jsonString = e.Json.ToString(); + // Ensure it's Light FX JSON + if (!jsonString.Contains("lightFxState")) + return; + + // Deserialize and data + + // Setup process name + + } + + public int Scale { get; set; } + + public override void Dispose() + { + Initialized = false; + base.Dispose(); + } + + public override void Enable() + { + Initialized = true; + } + + public override void Update() + { + } + + public override List GetRenderLayers(bool keyboardOnly) + { + return Profile.GetRenderLayers(DataModel, keyboardOnly); + } + } +} \ No newline at end of file diff --git a/Artemis/Artemis/Modules/Games/LightFx/LightFxSettings.cs b/Artemis/Artemis/Modules/Games/LightFx/LightFxSettings.cs new file mode 100644 index 000000000..a1f31124a --- /dev/null +++ b/Artemis/Artemis/Modules/Games/LightFx/LightFxSettings.cs @@ -0,0 +1,8 @@ +using Artemis.Settings; + +namespace Artemis.Modules.Games.LightFx +{ + public class LightFxSettings : GameSettings + { + } +} \ No newline at end of file diff --git a/Artemis/Artemis/Modules/Games/LightFx/LightFxView.xaml b/Artemis/Artemis/Modules/Games/LightFx/LightFxView.xaml new file mode 100644 index 000000000..19e045370 --- /dev/null +++ b/Artemis/Artemis/Modules/Games/LightFx/LightFxView.xaml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +