File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -72,23 +72,26 @@ fn net_ripping_mouse_movement_system(
7272
7373 ripping_state. reset ( ) ;
7474
75- // Find collision on the top-most (lowest layer value) layer
75+ // Find the top-most (lowest layer value) collision with a road segment
7676 let Some ( ( entity, _layer) ) = q_colliders
7777 . iter ( )
78- . filter_map ( |( child_of, collider, layer) | match collider {
79- Collider :: Segment ( segment) => {
80- match point_segment_collision ( mouse_snapped. 0 , segment. 0 , segment. 1 ) {
81- PointCollision :: None => None ,
82- _ => {
83- if layer. 0 == 0 {
84- None
85- } else {
86- Some ( ( child_of. parent ( ) , layer. 0 ) )
87- }
88- }
89- }
78+ . filter_map ( |( child_of, collider, layer) | {
79+ let Collider :: Segment ( segment_points) = collider else {
80+ return None ;
81+ } ;
82+
83+ if q_road_segments. get ( child_of. parent ( ) ) . is_err ( ) {
84+ return None ;
9085 }
91- _ => None ,
86+
87+ if matches ! (
88+ point_segment_collision( mouse_snapped. 0 , segment_points. 0 , segment_points. 1 ) ,
89+ PointCollision :: None
90+ ) {
91+ return None ;
92+ } ;
93+
94+ Some ( ( child_of. parent ( ) , layer. 0 ) )
9295 } )
9396 . min_by_key ( |( _, layer) | * layer)
9497 else {
You can’t perform that action at this time.
0 commit comments