public bool DoesEmblemMatch(NetworkGuildEmblem emblem) { return(BackgroundColor.ToArgb() == emblem.backgroundColor && BackgroundShape == emblem.backgroundShape && SymbolColor.ToArgb() == emblem.symbolColor && SymbolShape == emblem.symbolShape); }
/// <summary> /// Construct imageattribute based upon Transparency and/or Color Re-map /// </summary> private void ConstructImageAttributes() { if (_imageAttributes != null) { _imageAttributes.Dispose(); } if (Transparency == 0 && (SymbolColor.ToArgb() == RemapColor.ToArgb())) { return; } _imageAttributes = new ImageAttributes(); if (SymbolColor.ToArgb() != RemapColor.ToArgb()) { var cm = new ColorMap[1]; var a = SymbolColor.A; if (Transparency > 0) { a = (byte)(Math.Ceiling(255 * (1F - Transparency))); } var nc = Color.FromArgb(a, SymbolColor); cm[0] = new ColorMap(); cm[0].OldColor = RemapColor; cm[0].NewColor = nc; ImageAttributes.SetRemapTable(cm); } else { var cm = new ColorMatrix(); cm.Matrix33 = 1F - _transparency; ImageAttributes.SetColorMatrix(cm); } }
protected override void OnPropertyChanged(string propertyName = null) { base.OnPropertyChanged(propertyName); if (string.IsNullOrWhiteSpace(propertyName)) { return; } if (propertyName == BackgroundHighlightColorProperty.PropertyName) { _backgroundPaint.Color = BackgroundHighlightColor.ToSKColor(); InvalidateSurface(); } if (propertyName == SymbolColorProperty.PropertyName) { _symbolPaint.Color = SymbolColor.ToSKColor(); InvalidateSurface(); } // Do the animation just once if (propertyName == CurrentModeProperty.PropertyName || propertyName == CurrentStateProperty.PropertyName) { (_endSymbolPathA, _endSymbolPathB) = (CurrentMode, CurrentState) switch { (DisplayMode.PlayPause, State.Paused) => (_playA, _playB), (DisplayMode.PlayPause, State.Stopped) => (_playA, _playB), (DisplayMode.PlayPause, State.Playing) => (_pauseA, _pauseB), (DisplayMode.PlayStop, State.Paused) => (_playA, _playB), (DisplayMode.PlayStop, State.Stopped) => (_playA, _playB), (DisplayMode.PlayStop, State.Playing) => (_stopA, _stopB) }; LaunchAnimation(); } }
// This class return the sequence associated to a symbol and a color public static List <DoorController.Direction> GetSymbolCode(SymbolColor pColor, Symbol pSymbol) { List <DoorController.Direction> dirList = new List <DoorController.Direction>(); switch (pColor) { case SymbolColor.Blue: switch (pSymbol) { case Symbol.One: dirList.Add(DoorController.Direction.Up); dirList.Add(DoorController.Direction.Up); dirList.Add(DoorController.Direction.Left); break; case Symbol.Two: dirList.Add(DoorController.Direction.Bottom); dirList.Add(DoorController.Direction.Bottom); dirList.Add(DoorController.Direction.Bottom); break; case Symbol.Three: dirList.Add(DoorController.Direction.Up); dirList.Add(DoorController.Direction.Left); dirList.Add(DoorController.Direction.Right); break; default: dirList.Clear(); break; } break; case SymbolColor.Green: switch (pSymbol) { case Symbol.One: dirList.Add(DoorController.Direction.Left); dirList.Add(DoorController.Direction.Left); dirList.Add(DoorController.Direction.Left); break; case Symbol.Two: dirList.Add(DoorController.Direction.Bottom); dirList.Add(DoorController.Direction.Up); dirList.Add(DoorController.Direction.Up); break; case Symbol.Three: dirList.Add(DoorController.Direction.Bottom); dirList.Add(DoorController.Direction.Bottom); dirList.Add(DoorController.Direction.Bottom); break; default: dirList.Clear(); break; } break; case SymbolColor.Red: switch (pSymbol) { case Symbol.One: dirList.Add(DoorController.Direction.Right); dirList.Add(DoorController.Direction.Left); dirList.Add(DoorController.Direction.Up); break; case Symbol.Two: dirList.Add(DoorController.Direction.Left); dirList.Add(DoorController.Direction.Right); dirList.Add(DoorController.Direction.Right); break; case Symbol.Three: dirList.Add(DoorController.Direction.Right); dirList.Add(DoorController.Direction.Up); dirList.Add(DoorController.Direction.Bottom); break; default: dirList.Clear(); break; } break; case SymbolColor.Yellow: switch (pSymbol) { case Symbol.One: dirList.Add(DoorController.Direction.Left); dirList.Add(DoorController.Direction.Right); dirList.Add(DoorController.Direction.Left); break; case Symbol.Two: dirList.Add(DoorController.Direction.Right); dirList.Add(DoorController.Direction.Right); dirList.Add(DoorController.Direction.Right); break; case Symbol.Three: dirList.Add(DoorController.Direction.Up); dirList.Add(DoorController.Direction.Left); dirList.Add(DoorController.Direction.Left); break; default: dirList.Clear(); break; } break; case SymbolColor.Purple: switch (pSymbol) { case Symbol.One: dirList.Add(DoorController.Direction.Up); dirList.Add(DoorController.Direction.Up); dirList.Add(DoorController.Direction.Right); break; case Symbol.Two: dirList.Add(DoorController.Direction.Right); dirList.Add(DoorController.Direction.Bottom); dirList.Add(DoorController.Direction.Right); break; case Symbol.Three: dirList.Add(DoorController.Direction.Bottom); dirList.Add(DoorController.Direction.Bottom); dirList.Add(DoorController.Direction.Up); break; default: dirList.Clear(); break; } break; default: dirList.Clear(); break; } return(dirList); }