4 }; |
4 }; |
5 use hedgewars_engine_messages::queue::*; |
5 use hedgewars_engine_messages::queue::*; |
6 |
6 |
7 use integral_geometry::{Point, Rect, Size}; |
7 use integral_geometry::{Point, Rect, Size}; |
8 use landgen::outline_template::OutlineTemplate; |
8 use landgen::outline_template::OutlineTemplate; |
|
9 |
|
10 use std::path::Path; |
9 |
11 |
10 use super::{ipc::*, world::World}; |
12 use super::{ipc::*, world::World}; |
11 |
13 |
12 pub struct EngineInstance { |
14 pub struct EngineInstance { |
13 pub world: World, |
15 pub world: World, |
14 pub ipc_channel: Channel, |
16 pub ipc_channel: Channel, |
15 ipc_queue: MessagesQueue, |
17 ipc_queue: MessagesQueue, |
16 } |
18 } |
17 |
19 |
18 impl EngineInstance { |
20 impl EngineInstance { |
19 pub fn new() -> Self { |
21 pub fn new(data_path: &Path) -> Self { |
20 let mut world = World::new(); |
22 let mut world = World::new(data_path); |
21 |
23 |
22 fn template() -> OutlineTemplate { |
24 fn template() -> OutlineTemplate { |
23 let mut template = OutlineTemplate::new(Size::new(4096 * 1, 2048 * 1)); |
25 let mut template = OutlineTemplate::new(Size::new(4096 * 1, 2048 * 1)); |
24 template.islands = vec![vec![ |
26 template.islands = vec![vec![ |
25 Rect::from_size_coords(100, 2050, 1, 1), |
27 Rect::from_size_coords(100, 2050, 1, 1), |