11use bevy:: {
22 input:: common_conditions:: { input_just_pressed, input_just_released} ,
33 prelude:: * ,
4- window:: PrimaryWindow ,
5- winit:: { EventLoopProxyWrapper , WinitUserEvent } ,
4+ window:: { PrimaryWindow , RequestRedraw } ,
65} ;
76
87use crate :: {
@@ -40,15 +39,15 @@ fn grab_peg(
4039 window : Single < & Window , With < PrimaryWindow > > ,
4140 camera_query : Single < ( & Camera , & GlobalTransform ) > ,
4241 pegs : Query < ( Entity , & BoardPosition ) , With < Peg > > ,
43- wake : Res < EventLoopProxyWrapper > ,
42+ mut request_redraw : MessageWriter < RequestRedraw > ,
4443) {
4544 let ( camera, camera_transform) = * camera_query;
4645 if let Some ( cursor_pos) = window. cursor_position ( ) {
4746 if let Some ( world_pos_cursor) = viewport_to_world ( cursor_pos, camera, camera_transform) {
4847 let board_pos = BoardPosition :: from_world_space ( world_pos_cursor. xy ( ) ) ;
4948 if let Some ( peg) = pegs. iter ( ) . find ( |( _, p) | * * p == board_pos) . map ( |( p, _) | p) {
5049 commands. entity ( peg) . insert ( Selected ) ;
51- wake . send_event ( WinitUserEvent :: WakeUp ) . unwrap ( ) ;
50+ request_redraw . write ( RequestRedraw ) ;
5251 }
5352 } ;
5453 }
@@ -59,7 +58,7 @@ fn release_peg(
5958 window : Single < & Window , With < PrimaryWindow > > ,
6059 camera_query : Single < ( & Camera , & GlobalTransform ) > ,
6160 selected_pegs : Query < ( Entity , & BoardPosition ) , ( With < Peg > , With < Selected > ) > ,
62- wake : Res < EventLoopProxyWrapper > ,
61+ mut request_redraw : MessageWriter < RequestRedraw > ,
6362) {
6463 let ( camera, camera_transform) = * camera_query;
6564 if let Some ( cursor_pos) = window. cursor_position ( ) {
@@ -68,7 +67,7 @@ fn release_peg(
6867 for ( selected_peg, & current_pos) in selected_pegs {
6968 move_peg ( & mut commands, selected_peg, current_pos, board_pos) ;
7069 }
71- wake . send_event ( WinitUserEvent :: WakeUp ) . unwrap ( ) ;
70+ request_redraw . write ( RequestRedraw ) ;
7271 } ;
7372 }
7473}
@@ -79,7 +78,7 @@ fn peg_selection_touch(
7978 camera_query : Single < ( & Camera , & GlobalTransform ) > ,
8079 pegs : Query < ( Entity , & BoardPosition ) , With < Peg > > ,
8180 selected_pegs : Query < ( Entity , & BoardPosition ) , ( With < Peg > , With < Selected > ) > ,
82- wake : Res < EventLoopProxyWrapper > ,
81+ mut request_redraw : MessageWriter < RequestRedraw > ,
8382) {
8483 let ( camera, camera_transform) = * camera_query;
8584 for touch in touches. iter_just_pressed ( ) {
@@ -89,7 +88,7 @@ fn peg_selection_touch(
8988 commands. entity ( peg) . insert ( Selected ) ;
9089 }
9190 }
92- wake . send_event ( WinitUserEvent :: WakeUp ) . unwrap ( ) ;
91+ request_redraw . write ( RequestRedraw ) ;
9392 }
9493 for touch in touches. iter_just_released ( ) {
9594 if let Some ( world_pos) = viewport_to_world ( touch. position ( ) , camera, camera_transform) {
@@ -98,7 +97,7 @@ fn peg_selection_touch(
9897 move_peg ( & mut commands, selected_peg, current_pos, board_pos) ;
9998 }
10099 }
101- wake . send_event ( WinitUserEvent :: WakeUp ) . unwrap ( ) ;
100+ request_redraw . write ( RequestRedraw ) ;
102101 }
103102}
104103
0 commit comments