public ActionResult OverlaySettings(int id, OverlayModel model) { var game = new TCAdmin.GameHosting.SDK.Objects.Game(id); if (!ModelState.IsValid) { return(new JsonHttpStatusResult(new { Message = "Cannot save - Model state invalid." }, HttpStatusCode.BadRequest)); } var settings = GetSettingsForGame(game); settings.Overlays.Add(model); SaveBannerSettingsToGame(game, settings); return(new JsonHttpStatusResult(new { Message = "Saved Successfully" }, HttpStatusCode.OK)); }
public MainWindow() { var model = new OverlayModel { ElementsPath = System.IO.Path.Combine(Program.programPath, "Elements.json") }; IWheelElements elements = model.GetElements(); elements = elements ?? new WheelElements(); elements.Editor = new ElementsEditor() { WheelEditor = new WheelEditor <Wheel>(), ButtonEditor = new ButtonEditor <WheelButton>(), ActionEditors = new List <IActionEditor>() { new OpenProgramEditor(), new HotkeyActionEditor(), new OpenWebsiteActionEditor(), new OpenSteamAppActionEditor() }, }; var settings = UserSettings.Instance; settings.Editor = new SettingsEditor(); controller = new OverlayController(elements, settings) { Model = model, }; InitializeComponent(); view = new TcpOverlayView(controller, settings.Port); inputHandler = new InputHandler { View = view }; inputHandler.LoadHotkeys(settings); Job job = new Job(); Process process = new Process(); process.StartInfo.FileName = overlayPath; process.StartInfo.Arguments = $"--port {settings.Port} -single-instance -window-mode borderless -screen-fullscreen 0 -screen-height 500 -screen-width 500"; process.Start(); job.AddProcess(process.Handle); CancellationTokenSource tokenSource = new CancellationTokenSource(); Task processTask = Task.Run(process.WaitForExit, tokenSource.Token); while (true) { try { view.Connect(); break; } catch (System.Net.Sockets.SocketException) { if (processTask.IsCompleted) { throw new ConnectionClosedException(); } continue; } } tokenSource.Cancel(); tokenSource.Dispose(); controller.View = view; controller.InputHandler = inputHandler; view.UpdateElements(new SimplifiedWheelElements(controller.Elements)); view.SetSensitivity(settings.Sensitivity); }
protected OverlayViewModel(MainManager mainManager, OverlayModel overlayModel) { MainManager = mainManager; OverlayModel = overlayModel; OverlaySettings = overlayModel.Settings; }