rust/mapgen/src/template/maze.rs
author unC0Rr
Wed, 18 Sep 2024 13:42:26 +0200
branchtransitional_engine
changeset 16035 0caa3dfb3ba2
permissions -rw-r--r--
Add templates for different maze styles
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16035
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
     1
use landgen::maze::MazeTemplate;
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
     2
use serde_derive::Deserialize;
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
     3
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
     4
use std::collections::hash_map::HashMap;
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
     5
#[derive(Deserialize)]
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
     6
pub struct TemplateDesc {
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
     7
    width: usize,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
     8
    height: usize,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
     9
    max_hedgehogs: u8,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    10
    cell_size: usize,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    11
    distortion_limiting_factor: u32,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    12
    braidness: u32,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    13
    invert: bool,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    14
}
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    15
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    16
#[derive(Deserialize)]
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    17
pub struct TemplateCollectionDesc {
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    18
    pub templates: Vec<TemplateDesc>,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    19
    pub template_types: HashMap<String, Vec<usize>>,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    20
}
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    21
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    22
impl From<&TemplateDesc> for MazeTemplate {
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    23
    fn from(desc: &TemplateDesc) -> Self {
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    24
        MazeTemplate {
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    25
            width: desc.width,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    26
            height: desc.height,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    27
            cell_size: desc.cell_size,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    28
            inverted: desc.invert,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    29
            distortion_limiting_factor: desc.distortion_limiting_factor,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    30
            braidness: desc.braidness,
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    31
        }
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    32
    }
0caa3dfb3ba2 Add templates for different maze styles
unC0Rr
parents:
diff changeset
    33
}