public void NotifyPropertyChanged(IPropertyMetadata property) { ValidateProperty(property); GetPropertyState(property) !.IsModified = true; OnFieldChanged?.Invoke(this, new FieldChangedEventArgs(property)); }
private void SetField(FieldState newState) { field.currentState = newState; ChangeAppearance(); OnFieldChanged?.Invoke(field); }
public void ClearField(CellStadeKey clear) { for (int x = 0; x <= mainBuffer.GetUpperBound(0); x++) { for (int y = 0; y <= mainBuffer.GetUpperBound(1); y++) { mainBuffer[x, y] = clear; } } OnFieldChanged?.Invoke(this); }
public void GenerateRandomField() { for (int x = 0; x <= mainBuffer.GetUpperBound(0); x++) { for (int y = 0; y <= mainBuffer.GetUpperBound(1); y++) { mainBuffer[x, y] = random.Next(3) == 0 ? CellStadeKey.Filled : CellStadeKey.Empty; } } OnFieldChanged?.Invoke(this); }
public void Update() { for (int x = 0; x <= mainBuffer.GetUpperBound(0); x++) { for (int y = 0; y <= mainBuffer.GetUpperBound(1); y++) { var neightborsCount = GetNeighborsCount(x, y); var cell = mainBuffer[x, y]; buffers[1][x, y] = mainBuffer[x, y]; if (cell == CellStadeKey.Filled) { if (!(neightborsCount == 2 || neightborsCount == 3)) { buffers[1][x, y] = CellStadeKey.Empty; } } else if (cell == CellStadeKey.Empty) { if (neightborsCount == 3) { buffers[1][x, y] = CellStadeKey.Filled; } } else { continue; } } } for (int x = 0; x <= mainBuffer.GetUpperBound(0); x++) { for (int y = 0; y <= mainBuffer.GetUpperBound(1); y++) { mainBuffer[x, y] = buffers[1][x, y]; } } OnFieldChanged?.Invoke(this); }
private void OnFieldChangedHandler(object sender, FieldChangedEventArgs e) => InvokeAsync(() => OnFieldChanged.InvokeAsync(e));
protected virtual void FieldChanged() { OnFieldChanged?.Invoke(_gameField.Clone()); }
public void SetCell(CellStadeKey stade, int x, int y) { mainBuffer[x, y] = stade; OnFieldChanged?.Invoke(this); }