rust/landgen/src/lib.rs
branchtransitional_engine
changeset 15912 6e22f4390b7e
parent 15905 022ec6b916b7
child 15921 5f00829c55ec
equal deleted inserted replaced
15906:b4809653f9d6 15912:6e22f4390b7e
     1 mod outline;
     1 mod outline;
     2 pub mod outline_template;
     2 pub mod outline_template;
     3 pub mod template_based;
     3 pub mod template_based;
       
     4 pub mod wavefront_collapse;
     4 
     5 
     5 #[derive(Clone, Copy)]
     6 #[derive(Clone, Copy)]
     6 pub struct LandGenerationParameters<T> {
     7 pub struct LandGenerationParameters<T> {
     7     zero: T,
     8     zero: T,
     8     basic: T,
     9     basic: T,
     9     distance_divisor: u32,
    10     distance_divisor: u32,
    10     skip_distort: bool,
    11     skip_distort: bool,
    11     skip_bezier: bool,
    12     skip_bezier: bool,
    12 }
    13 }
    13 
    14 
    14 impl<T: Copy + PartialEq> LandGenerationParameters<T> {
    15 impl<T: Copy + PartialEq + Default> LandGenerationParameters<T> {
    15     pub fn new(
    16     pub fn new(
    16         zero: T,
    17         zero: T,
    17         basic: T,
    18         basic: T,
    18         distance_divisor: u32,
    19         distance_divisor: u32,
    19         skip_distort: bool,
    20         skip_distort: bool,
    36         self.basic
    37         self.basic
    37     }
    38     }
    38 }
    39 }
    39 
    40 
    40 pub trait LandGenerator {
    41 pub trait LandGenerator {
    41     fn generate_land<T: Copy + PartialEq, I: Iterator<Item = u32>>(
    42     fn generate_land<T: Copy + PartialEq + Default, I: Iterator<Item = u32>>(
    42         &self,
    43         &self,
    43         parameters: &LandGenerationParameters<T>,
    44         parameters: &LandGenerationParameters<T>,
    44         random_numbers: &mut I,
    45         random_numbers: &mut I,
    45     ) -> land2d::Land2D<T>;
    46     ) -> land2d::Land2D<T>;
    46 }
    47 }
    47 
       
    48 #[cfg(test)]
       
    49 mod tests {
       
    50     #[test]
       
    51     fn it_works() {
       
    52         assert_eq!(2 + 2, 4);
       
    53     }
       
    54 }