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));
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
 protected OverlayViewModel(MainManager mainManager, OverlayModel overlayModel)
 {
     MainManager     = mainManager;
     OverlayModel    = overlayModel;
     OverlaySettings = overlayModel.Settings;
 }