From 503361ce70615d7c4b66bd7e49d56c61259dab32 Mon Sep 17 00:00:00 2001 From: tom barrett Date: Mon, 8 Jul 2019 04:53:04 -0500 Subject: rotation now works --- src/tileset.rs | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src/tileset.rs') diff --git a/src/tileset.rs b/src/tileset.rs index bb64c12..6a7ca42 100644 --- a/src/tileset.rs +++ b/src/tileset.rs @@ -64,13 +64,13 @@ impl Tileset { for (id, tile) in tiles.clone().into_iter() { for i in 1..8 { let (new_id, new_tile) = match i { - 1 => ((id | FLIP_H), tile.clone()), - 2 => ((id | FLIP_V), flip(tile.clone())), + 1 => ((id | FLIP_H), flip(tile.clone())), + 2 => ((id | FLIP_V), tile.clone()), 3 => ((id | FLIP_D), tile.clone()), - 4 => ((id | FLIP_D | FLIP_H), tile.clone()), - 5 => ((id | FLIP_D | FLIP_V), tile.clone()), - 6 => ((id | FLIP_H | FLIP_V), tile.clone()), - 7 => ((id | FLIP_A), tile.clone()), + 4 => ((id | FLIP_D | FLIP_H), rotate(tile.clone(), 90.0)), + 5 => ((id | FLIP_D | FLIP_V), rotate(tile.clone(), 270.0)), + 6 => ((id | FLIP_H | FLIP_V), rotate(tile.clone(), 180.0)), + 7 => ((id | FLIP_A), rotate(tile.clone(), 90.0)), _ => (0, Tile::default()), }; @@ -135,3 +135,9 @@ fn flip(tile: Tile) -> Tile { t.source.x -= t.source.w; t } + +fn rotate(tile: Tile, angle: f32) -> Tile { + let mut t = tile.clone(); + t.properties.rotation = convert_angle_to_rad(angle); + t +} -- cgit v1.2.3