From ae142ab146424791d860d0c03141378864c03d79 Mon Sep 17 00:00:00 2001 From: gered Date: Wed, 24 Jul 2013 17:31:18 -0400 Subject: [PATCH] when placing a TilePrefab, apply rotation to rotated tiles being copied --- src/com/blarg/gdx/tilemap3d/prefabs/TilePrefab.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/com/blarg/gdx/tilemap3d/prefabs/TilePrefab.java b/src/com/blarg/gdx/tilemap3d/prefabs/TilePrefab.java index d9ae7b6..b4abd8a 100644 --- a/src/com/blarg/gdx/tilemap3d/prefabs/TilePrefab.java +++ b/src/com/blarg/gdx/tilemap3d/prefabs/TilePrefab.java @@ -2,6 +2,7 @@ package com.blarg.gdx.tilemap3d.prefabs; import com.badlogic.gdx.math.Vector3; import com.badlogic.gdx.math.collision.BoundingBox; +import com.blarg.gdx.Bitfield; import com.blarg.gdx.tilemap3d.Tile; import com.blarg.gdx.tilemap3d.TileContainer; @@ -233,6 +234,18 @@ public class TilePrefab extends TileContainer { if (!copyEmptyTiles && sourceTile.isEmptySpace()) continue; + if (Bitfield.isSet(Tile.FLAG_FACE_NORTH, sourceTile.flags) || + Bitfield.isSet(Tile.FLAG_FACE_EAST, sourceTile.flags) || + Bitfield.isSet(Tile.FLAG_FACE_SOUTH, sourceTile.flags) || + Bitfield.isSet(Tile.FLAG_FACE_WEST, sourceTile.flags)) { + if (rotation.equals(Rotation.ROT90)) + sourceTile.rotateClockwise(); + else if (rotation.equals(Rotation.ROT180)) + sourceTile.rotateClockwise().rotateClockwise(); + else if (rotation.equals(Rotation.ROT270)) + sourceTile.rotateClockwise().rotateClockwise().rotateClockwise(); + } + Tile destTile = destination.get(minX + x, minY + y, minZ + z); destTile.set(sourceTile); }