public void FadeInIfHigher(MainModel mainModel) { if (mainModel.BoostAmount <= mainModel.PreviousBoost) return; const int amountOfSteps = 6; var difference = mainModel.BoostAmount - mainModel.PreviousBoost; var differenceStep = difference / amountOfSteps; var differenceStepRest = difference % amountOfSteps; mainModel.BoostAmount = mainModel.PreviousBoost; for (var i = 0; i < amountOfSteps; i++) { if (differenceStepRest > 0) { differenceStepRest -= 1; mainModel.BoostAmount += 1; } mainModel.BoostAmount += differenceStep; var bitmap = CreateBoostBitmap(mainModel); LogitechGSDK.LogiLedSetLightingFromBitmap(OrionController.BitmapToByteArray(bitmap)); Thread.Sleep(50); } }
public MainController(MainView mainView) { // Models MainModel = new MainModel(mainView) { // Load color settings MainColor = Settings.Default.MainColor, SecondaryColor = Settings.Default.SecondaryColor }; // Views MainView = mainView; // Controllers RocketLeagueController = new RocketLeagueController(this); // Background workers _processWorker = new BackgroundWorker(); _processWorker.DoWork += processWorker_DoWork; _processWorker.WorkerSupportsCancellation = true; // Grand view access to MainController MainView.MainController = this; // Start looking for RocketLeague.exe _processWorker.RunWorkerAsync(); }
public Bitmap CreateBoostBitmap(MainModel mainModel) { // Orion bitmaps are 21 wide, 6 high. var flag = new Bitmap(21, 6); using (var g = Graphics.FromImage(flag)) { g.Clear(Color.Transparent); var width = (int) (flag.Width/100.00*mainModel.BoostAmount); if (width <= 0) return flag; var mainBrush = new LinearGradientBrush(new Rectangle(0, 0, width, flag.Height), mainModel.MainColor, mainModel.SecondaryColor, LinearGradientMode.Horizontal); g.FillRectangle(mainBrush, 0, 0, width, flag.Height); var endBrush = new LinearGradientBrush(new Rectangle(width - 2, 0, 4, flag.Height), mainModel.SecondaryColor, Color.Transparent, LinearGradientMode.Horizontal); g.FillRectangle(endBrush, width - 2, 0, 4, flag.Height); } return flag; }