protected override IGameModelObject Create() { IGameModelObject modelObject = objectArea[RowIndex, ColumnIndex]; bool canDelete = false; string name = objectArea[RowIndex, ColumnIndex].Name; if (name == Pipe.Name || name == Source.Name) { foreach (var neighbor in tileArea[RowIndex, ColumnIndex].Neighbors) { if (objectArea[neighbor.X, neighbor.Y].Name == Pipe.Name) { Point notInclude = tileArea[RowIndex, ColumnIndex].Position; if (IsNeighborSource(neighbor, notInclude)) { canDelete = true; } else { canDelete = false; break; } } else { canDelete = true; } } } if (canDelete) { modelObject = new Empty(); } return(modelObject); }
private static bool IsFilledPipe(IGameModelObject gameObject) { bool isFilledPipe = false; if (gameObject is Pipe pipe) { isFilledPipe = pipe.IsFilled; } return(isFilledPipe); }
protected override IGameModelObject Create() { IGameModelObject newObject = null; foreach (var neightbor in tileArea[RowIndex, ColumnIndex].Neighbors) { string name = objectArea[neightbor.X, neightbor.Y].Name; if (name == Source.Name || name == Pipe.Name) { newObject = new Pipe(); break; } } if (newObject == null) { newObject = objectArea[RowIndex, ColumnIndex]; } return(newObject); }
private static bool IsSource(IGameModelObject gameObject) { return(gameObject is Source); }