diff -r 9bd828451d77 -r 659c92124c26 rust/landgen/src/wavefront_collapse/tile_image.rs --- a/rust/landgen/src/wavefront_collapse/tile_image.rs Sun Feb 12 14:19:02 2023 +0100 +++ b/rust/landgen/src/wavefront_collapse/tile_image.rs Sun Feb 12 15:10:10 2023 +0100 @@ -23,19 +23,19 @@ Self { id: self.id.clone(), symmetrical: self.symmetrical, - reverse: !self.symmetrical && !self.reverse, + reverse: !self.reverse, } } pub fn is_compatible(&self, other: &Self) -> bool { - self.id == other.id && (self.reverse != other.reverse || self.symmetrical) + self.id == other.id && ((self.reverse != other.reverse) || self.symmetrical) } } #[derive(Clone)] pub struct TileImage { image: Rc>, - transform: Transform, + pub transform: Transform, top: Edge, right: Edge, bottom: Edge, @@ -108,10 +108,10 @@ Self { image: self.image.clone(), transform: self.transform.rotate270(), - top: self.left.clone(), - right: self.top.clone(), - bottom: self.right.clone(), - left: self.bottom.clone(), + top: self.right.clone(), + right: self.bottom.clone(), + bottom: self.left.clone(), + left: self.top.clone(), } } @@ -156,13 +156,13 @@ self.image.get(image_row, image_column) }, Transform::Rotate90(_) => { - let image_row = if self.transform.is_flipped() { + let image_row = if self.transform.is_mirrored() { column } else { self.image.height().wrapping_sub(1).wrapping_sub(column) }; - let image_column = if self.transform.is_mirrored() { + let image_column = if self.transform.is_flipped() { self.image.width().wrapping_sub(1).wrapping_sub(row) } else { row