Add visibility checking to event throwing.
Integrate vision with existing event systems