equal
deleted
inserted
replaced
4 }; |
4 }; |
5 |
5 |
6 use integral_geometry::{Point, Rect, Size}; |
6 use integral_geometry::{Point, Rect, Size}; |
7 use landgen::outline_template::OutlineTemplate; |
7 use landgen::outline_template::OutlineTemplate; |
8 |
8 |
9 use super::{ipc::IPC, world::World}; |
9 use super::{ipc::*, world::World}; |
10 |
10 |
11 pub struct EngineInstance { |
11 pub struct EngineInstance { |
12 pub world: World, |
12 pub world: World, |
13 pub ipc: IPC, |
13 pub ipc_channel: Channel, |
|
14 ipc_queue: MessagesQueue, |
14 } |
15 } |
15 |
16 |
16 impl EngineInstance { |
17 impl EngineInstance { |
17 pub fn new() -> Self { |
18 pub fn new() -> Self { |
18 let mut world = World::new(); |
19 let mut world = World::new(); |
32 |
33 |
33 world.init(template()); |
34 world.init(template()); |
34 |
35 |
35 Self { |
36 Self { |
36 world, |
37 world, |
37 ipc: IPC::new(), |
38 ipc_channel: Channel::new(), |
|
39 ipc_queue: MessagesQueue::new(QueueChatStrategy::LocalGame), |
38 } |
40 } |
39 } |
41 } |
40 |
42 |
41 pub fn render(&mut self) { |
43 pub fn render(&mut self) { |
42 self.world.render(); |
44 self.world.render(); |
55 _ => unimplemented!(), |
57 _ => unimplemented!(), |
56 } |
58 } |
57 } |
59 } |
58 |
60 |
59 pub fn process_ipc_queue(&mut self) { |
61 pub fn process_ipc_queue(&mut self) { |
60 let messages: Vec<EngineMessage> = self.ipc.iter().collect(); |
62 for message in self.ipc_channel.iter() { |
|
63 self.ipc_queue.push(message); |
|
64 } |
|
65 |
|
66 let messages: Vec<EngineMessage> = self.ipc_queue.iter(0).collect(); |
61 |
67 |
62 for message in messages { |
68 for message in messages { |
63 println!("Processing message: {:?}", message); |
69 println!("Processing message: {:?}", message); |
64 match message { |
70 match message { |
65 Unknown => println!("Unknown message"), |
71 Unknown => println!("Unknown message"), |