public void SetOutgoingRiver(GridDirection direction) { if (hasOutgoingRivers[(int)direction] || HasRoads) { Debug.Log("Could not add river"); return; } SquareCell neighbor = GetNeighbor(direction); if (!neighbor || CentreElevation < neighbor.CentreElevation) { Debug.Log("Could not add river uphill"); return; } if (hasIncomingRivers[(int)direction]) { RemoveIncomingRiver(direction); } hasOutgoingRivers[(int)direction] = true; RefreshChunkOnly(); neighbor.RemoveOutgoingRiver(direction.Opposite()); neighbor.hasIncomingRivers[(int)direction.Opposite()] = true; neighbor.RefreshChunkOnly(); }