rust/landgen/src/template_based.rs
author alfadur
Thu, 01 Nov 2018 03:38:13 +0300
changeset 14075 3185fb34f3b5
parent 14073 9c817b2eedae
child 14087 649ccb9f8cfd
permissions -rw-r--r--
update theme editor to use new land generator implementation
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
     1
use itertools::Itertools;
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
     2
14073
alfadur
parents: 14072 14053
diff changeset
     3
use integral_geometry::{Point, Size, Rect};
14047
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
     4
use land2d::Land2D;
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
     5
use LandGenerationParameters;
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
     6
use LandGenerator;
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
     7
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
     8
struct OutlinePoints {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
     9
    islands: Vec<Vec<Point>>,
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    10
    fill_points: Vec<Point>,
14073
alfadur
parents: 14072 14053
diff changeset
    11
    size: Size,
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    12
}
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    13
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    14
impl OutlinePoints {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    15
    fn from_outline_template<I: Iterator<Item = u32>>(
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    16
        outline_template: &OutlineTemplate,
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    17
        random_numbers: &mut I,
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    18
    ) -> Self {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    19
        Self {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    20
            islands: outline_template
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    21
                .islands
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    22
                .iter()
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    23
                .map(|i| {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    24
                    i.iter()
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    25
                        .zip(random_numbers.tuples())
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    26
                        .map(|(rect, (rnd_a, rnd_b))| {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    27
                            Point::new(
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    28
                                rect.x + (rnd_a % rect.width) as i32,
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    29
                                rect.y + (rnd_b % rect.height) as i32,
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    30
                            )
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    31
                        }).collect()
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    32
                }).collect(),
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    33
            fill_points: outline_template.fill_points.clone(),
14073
alfadur
parents: 14072 14053
diff changeset
    34
            size: outline_template.size
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    35
        }
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    36
    }
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    37
14073
alfadur
parents: 14072 14053
diff changeset
    38
    fn iter_mut(&mut self) -> impl Iterator<Item = &mut Point> {
alfadur
parents: 14072 14053
diff changeset
    39
        self.islands.iter_mut()
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    40
            .flat_map(|i| i.iter_mut())
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    41
            .chain(self.fill_points.iter_mut())
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    42
    }
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    43
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    44
    fn distort<I: Iterator<Item = u32>>(&mut self, random_numbers: &mut I) {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    45
        unimplemented!()
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    46
    }
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    47
}
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    48
14075
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    49
pub struct OutlineTemplate {
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
    50
    islands: Vec<Vec<Rect>>,
14047
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
    51
    fill_points: Vec<Point>,
14053
2869c2ccb1b8 extract size struct for common usage
alfadur
parents: 14047
diff changeset
    52
    size: Size,
14047
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
    53
    can_flip: bool,
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
    54
    can_invert: bool,
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
    55
    can_mirror: bool,
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
    56
    is_negative: bool,
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
    57
}
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
    58
14075
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    59
impl OutlineTemplate {
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    60
    pub fn new(size: Size) -> Self {
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    61
        OutlineTemplate {
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    62
            size,
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    63
            islands: Vec::new(),
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    64
            fill_points: Vec::new(),
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    65
            can_flip: false,
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    66
            can_invert: false,
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    67
            can_mirror: false,
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    68
            is_negative: false
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    69
        }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    70
    }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    71
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    72
    pub fn flippable(self) -> Self {
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    73
        Self { can_flip: true, ..self }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    74
    }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    75
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    76
    pub fn mirrorable(self) -> Self {
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    77
        Self { can_mirror: true, ..self }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    78
    }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    79
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    80
    pub fn invertable(self) -> Self {
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    81
        Self { can_invert: true, ..self }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    82
    }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    83
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    84
    pub fn negative(self) -> Self {
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    85
        Self { is_negative: true, ..self }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    86
    }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    87
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    88
    pub fn with_fill_points(self, fill_points: Vec<Point>) -> Self
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    89
    {
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    90
        Self { fill_points, ..self }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    91
    }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    92
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    93
    pub fn with_islands(mut self, islands: Vec<Vec<Rect>>) -> Self {
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    94
        Self { islands, ..self }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    95
    }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    96
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    97
    pub fn add_fill_points(mut self, points: &[Point]) -> Self {
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    98
        self.fill_points.extend_from_slice(points); self
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
    99
    }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
   100
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
   101
    pub fn add_island(mut self, island: &[Rect]) -> Self {
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
   102
        self.islands.push(island.into()); self
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
   103
    }
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
   104
}
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
   105
3185fb34f3b5 update theme editor to use new land generator implementation
alfadur
parents: 14073
diff changeset
   106
pub struct TemplatedLandGenerator {
14047
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   107
    outline_template: OutlineTemplate,
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   108
}
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   109
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   110
impl TemplatedLandGenerator {
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   111
    pub fn new(outline_template: OutlineTemplate) -> Self {
14047
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   112
        Self { outline_template }
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   113
    }
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   114
}
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   115
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   116
impl LandGenerator for TemplatedLandGenerator {
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   117
    fn generate_land<T: Copy + PartialEq, I: Iterator<Item = u32>>(
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   118
        &self,
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   119
        parameters: LandGenerationParameters<T>,
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   120
        random_numbers: &mut I,
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   121
    ) -> Land2D<T> {
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   122
        let mut points =
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   123
            OutlinePoints::from_outline_template(&self.outline_template, random_numbers);
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   124
14073
alfadur
parents: 14072 14053
diff changeset
   125
        let mut land = Land2D::new(points.size, parameters.basic);
14047
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   126
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   127
        let top_left = Point::new(
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   128
            (land.width() - land.play_width() / 2) as i32,
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   129
            (land.height() - land.play_height()) as i32,
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   130
        );
14047
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   131
14073
alfadur
parents: 14072 14053
diff changeset
   132
        points.size = land.size();
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   133
14073
alfadur
parents: 14072 14053
diff changeset
   134
        points.iter_mut().for_each(|p| *p += top_left);
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   135
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   136
        // mirror
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   137
        if self.outline_template.can_mirror {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   138
            if let Some(b) = random_numbers.next() {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   139
                if b & 1 != 0 {
14073
alfadur
parents: 14072 14053
diff changeset
   140
                    points.iter_mut().for_each(|p| p.x = land.width() as i32 - 1 - p.x);
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   141
                }
14047
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   142
            }
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   143
        }
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   144
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   145
        // flip
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   146
        if self.outline_template.can_flip {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   147
            if let Some(b) = random_numbers.next() {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   148
                if b & 1 != 0 {
14073
alfadur
parents: 14072 14053
diff changeset
   149
                    points.iter_mut().for_each(|p|
alfadur
parents: 14072 14053
diff changeset
   150
                        p.y = land.height() as i32 - 1 - p.y);
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   151
                }
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   152
            }
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   153
        }
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   154
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   155
        points.distort(random_numbers);
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   156
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   157
        // draw_edge(points, land, parameters.zero)
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   158
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   159
        for p in points.fill_points {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   160
            land.fill(p, parameters.zero, parameters.zero)
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   161
        }
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   162
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   163
        // draw_edge(points, land, parameters.basic)
14047
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   164
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   165
        land
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   166
    }
3b3d97ed2286 Start land generators implementation
unc0rr
parents:
diff changeset
   167
}
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   168
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   169
#[test()]
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   170
fn points_test() {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   171
    let mut points = OutlinePoints {
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   172
        islands: vec![vec![]],
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   173
        fill_points: vec![Point::new(1, 1)],
14073
alfadur
parents: 14072 14053
diff changeset
   174
        size: Size::square(100)
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   175
    };
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   176
14073
alfadur
parents: 14072 14053
diff changeset
   177
    points.iter_mut().for_each(|p| p.x = 2);
14072
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   178
    assert_eq!(points.fill_points[0].x, 2);
8a0d69c16cad Implement OutlinePoints for land generators, some ground work for template based landgen
unc0rr
parents: 14047
diff changeset
   179
}