rust/mapgen/src/template/maze.rs
author unC0Rr
Tue, 28 Jan 2025 15:49:45 +0100
changeset 16102 5d302b12d837
parent 16064 0caa3dfb3ba2
permissions -rw-r--r--
- Update landgen to use the latest rand crate - Change Size width and height from usize to u32 for portability - Implement backtracking in wfc generator

use landgen::maze::MazeTemplate;
use serde_derive::Deserialize;

use std::collections::hash_map::HashMap;
#[derive(Deserialize)]
pub struct TemplateDesc {
    width: u32,
    height: u32,
    max_hedgehogs: u8,
    cell_size: u32,
    distortion_limiting_factor: u32,
    braidness: u32,
    invert: bool,
}

#[derive(Deserialize)]
pub struct TemplateCollectionDesc {
    pub templates: Vec<TemplateDesc>,
    pub template_types: HashMap<String, Vec<usize>>,
}

impl From<&TemplateDesc> for MazeTemplate {
    fn from(desc: &TemplateDesc) -> Self {
        MazeTemplate {
            width: desc.width,
            height: desc.height,
            cell_size: desc.cell_size,
            inverted: desc.invert,
            distortion_limiting_factor: desc.distortion_limiting_factor,
            braidness: desc.braidness,
        }
    }
}