rust/landgen/src/wavefront_collapse/tile_image.rs
branchtransitional_engine
changeset 15919 659c92124c26
parent 15918 9bd828451d77
child 15920 168f44ef9b67
--- 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<T, I: PartialEq + Clone> {
     image: Rc<Vec2D<T>>,
-    transform: Transform,
+    pub transform: Transform,
     top: Edge<I>,
     right: Edge<I>,
     bottom: Edge<I>,
@@ -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