public ParseCommandBlink(string parameters, ColoredGlyph[] glyphString, ParseCommandStacks commandStack, SurfaceEditor surfaceEditor) { string[] parametersArray = parameters.Split(':'); if (parametersArray.Length == 2) Speed = double.Parse(parametersArray[1]); if (parametersArray.Length >= 1 && parametersArray[0] != "") Counter = int.Parse(parametersArray[0]); else Counter = -1; // Try sync with surface editor if (surfaceEditor != null) { var effects = surfaceEditor.Effects.GetEffects(); if (effects != null) { var existingBlinks = new List<SadConsole.Effects.ICellEffect>(effects); foreach (var item in existingBlinks) { if (item is CustomBlinkEffect) { if (Speed == ((CustomBlinkEffect)item).BlinkSpeed) BlinkEffect = (CustomBlinkEffect)item; break; } } } } // Failed, look within this parse for existing if (BlinkEffect == null) { foreach (var item in glyphString) { if (item.Effect != null && item.Effect is CustomBlinkEffect) if (Speed == ((CustomBlinkEffect)item.Effect).BlinkSpeed) BlinkEffect = (CustomBlinkEffect)item.Effect; } } if (BlinkEffect == null) BlinkEffect = new CustomBlinkEffect() { BlinkSpeed = Speed }; commandStack.TurnOnEffects = true; // No exceptions, set the type CommandType = CommandTypes.Effect; }
public ParseCommandBlink(string parameters, ColoredGlyph[] glyphString, ParseCommandStacks commandStack, CellSurface surfaceEditor) { string[] parametersArray = parameters.Split(':'); if (parametersArray.Length == 2) { Speed = double.Parse(parametersArray[1], CultureInfo.InvariantCulture); } if (parametersArray.Length >= 1 && parametersArray[0] != "") { Counter = int.Parse(parametersArray[0], CultureInfo.InvariantCulture); } else { Counter = -1; } // Try sync with surface editor if (surfaceEditor != null) { IEnumerable <Effects.ICellEffect> effects = surfaceEditor.Effects.GetEffects(); if (effects != null) { var existingBlinks = new List <Effects.ICellEffect>(effects); foreach (Effects.ICellEffect item in existingBlinks) { if (item is CustomBlinkEffect) { if (Speed == ((CustomBlinkEffect)item).BlinkSpeed) { BlinkEffect = (CustomBlinkEffect)item; } break; } } } } // Failed, look within this parse for existing if (BlinkEffect == null) { foreach (ColoredGlyph item in glyphString) { if (item.Effect != null && item.Effect is CustomBlinkEffect) { if (Speed == ((CustomBlinkEffect)item.Effect).BlinkSpeed) { BlinkEffect = (CustomBlinkEffect)item.Effect; } } } } if (BlinkEffect == null) { BlinkEffect = new CustomBlinkEffect() { BlinkSpeed = Speed }; } commandStack.TurnOnEffects = true; // No exceptions, set the type CommandType = CommandTypes.Effect; }