@@ -4,6 +4,7 @@ pub fn receive_message_system(
4
4
mut server : ResMut < RenetServer > ,
5
5
mut player_states : ResMut < player_resources:: PlayerStates > ,
6
6
mut past_block_updates : ResMut < terrain_resources:: PastBlockUpdates > ,
7
+ mut chunk_manager : ResMut < terrain_resources:: ChunkManager > ,
7
8
) {
8
9
for client_id in server. clients_id ( ) {
9
10
let message_bytes = server. receive_message ( client_id, DefaultChannel :: ReliableUnordered ) ;
@@ -31,6 +32,34 @@ pub fn receive_message_system(
31
32
) ;
32
33
player_states. players . insert ( client_id, player) ;
33
34
}
35
+ lib:: NetworkingMessage :: ChunkRequest {
36
+ position,
37
+ client_id,
38
+ } => {
39
+ info ! (
40
+ "Received chunk request at {} from client {}" ,
41
+ position, client_id
42
+ ) ;
43
+
44
+ let chunk = chunk_manager. get_chunk ( position) ;
45
+
46
+ match chunk {
47
+ Some ( chunk) => {
48
+ let message = bincode:: serialize ( chunk) . unwrap ( ) ;
49
+ server. send_message ( client_id, DefaultChannel :: ReliableUnordered , message) ;
50
+ }
51
+ None => {
52
+ let mut chunk = terrain_util:: Chunk :: new ( position) ;
53
+
54
+ let generator = terrain_util:: generator:: Generator :: new ( 0 ) ;
55
+
56
+ generator. generate_chunk ( & mut chunk) ;
57
+
58
+ let message = bincode:: serialize ( & chunk) . unwrap ( ) ;
59
+ server. send_message ( client_id, DefaultChannel :: ReliableUnordered , message) ;
60
+ }
61
+ }
62
+ }
34
63
_ => {
35
64
warn ! ( "Received unknown message type. (ReliableUnordered)" ) ;
36
65
}
0 commit comments