public void CoordToWorldMapping() { OrientationManager.SetOrientation(Orientation.North); Vector2Int coord1 = new Vector2Int(74, -23); Vector2Int coord2 = new Vector2Int(-33, 13); Vector2Int coord3 = new Vector2Int(93, 0); Vector2 expectedWorldPos1 = new Vector2( -98 * Settings.TILE_WIDTH_HALF, -51 * Settings.TILE_HEIGHT_HALF); Assert.AreEqual(TileTransformer.CoordToWorld(coord1), expectedWorldPos1); Assert.AreEqual(TileTransformer.CoordToWorld(coord1.x, coord1.y), expectedWorldPos1); Assert.AreEqual(TileTransformer.CoordToWorld((float)coord1.x, (float)coord1.y), expectedWorldPos1); Vector2 expectedWorldPos2 = new Vector2( 45 * Settings.TILE_WIDTH_HALF, 20 * Settings.TILE_HEIGHT_HALF); Assert.AreEqual(TileTransformer.CoordToWorld(coord2), expectedWorldPos2); Assert.AreEqual(TileTransformer.CoordToWorld(coord2.x, coord2.y), expectedWorldPos2); Assert.AreEqual(TileTransformer.CoordToWorld((float)coord2.x, (float)coord2.y), expectedWorldPos2); Vector2 expectedWorldPos3 = new Vector2( -94 * Settings.TILE_WIDTH_HALF, -93 * Settings.TILE_HEIGHT_HALF); Assert.AreEqual(TileTransformer.CoordToWorld(coord3), expectedWorldPos3); Assert.AreEqual(TileTransformer.CoordToWorld(coord3.x, coord3.y), expectedWorldPos3); Assert.AreEqual(TileTransformer.CoordToWorld((float)coord3.x, (float)coord3.y), expectedWorldPos3); }
public void UpdateSprite() { Vector2 rotatedOffset = TileTransformer.InverseRotateCoord(new Vector2(xOffset, yOffset)); transform.position = TileTransformer.CoordToWorld(character.x + rotatedOffset.x, character.y + rotatedOffset.y); SpriteRenderer sr = GetComponent <SpriteRenderer>(); sr.sortingOrder = SortingOrders.TileOrder(character.roundedX, character.roundedY, TileSubLayer.Character); }
public void WorldToCoordRotates() { OrientationManager.SetOrientation(Orientation.North); Vector2Int coords = new Vector2Int(13, -33); Vector2 world = TileTransformer.CoordToWorld(coords) + new Vector2(Settings.TILE_WIDTH_HALF / 2f, 0f); Vector2Int invertedCoords = TileTransformer.WorldToCoord(world); OrientationManager.SetOrientation(Orientation.West); Assert.AreEqual(TileTransformer.InverseRotateCoord(invertedCoords), TileTransformer.WorldToCoord(world)); }
void UpdateSprite(ITile tile) { if (gameobjects.ContainsKey(tile) == false) { Debug.LogError("Trying to update a furni without a gameobject created."); return; } GameObject furni_go = gameobjects[tile]; furni_go.transform.position = (Vector3)TileTransformer.CoordToWorld(tile.X, tile.Y); SpriteRenderer sr = furni_go.GetComponent <SpriteRenderer>(); sr.sprite = DataManager.furnitureSpriteData.GetDataById(tile.GetPlacedFurniture().GetIndex()).GetSprite(tile.GetPlacedFurniture()); sr.sortingOrder = SortingOrders.TileOrder(tile.X, tile.Y, TileSubLayer.Furniture); }
void UpdateSprite(ITile tile) { if (gameobjects.ContainsKey(tile) == false) { Debug.LogError("Trying to update a tile without a gameobject created."); return; } GameObject tile_go = gameobjects[tile]; tile_go.transform.position = (Vector3)TileTransformer.CoordToWorld(tile.X, tile.Y); SpriteRenderer sr = tile_go.GetComponent <SpriteRenderer>(); sr.sprite = DataManager.tileSpriteData.GetDataById(tile.Type); sr.sortingOrder = SortingOrders.FloorOrder(tile.X, tile.Y, FloorSubLayer.FloorTile); }
public override void UpdateCursors(Vector2 mousePosition) { Vector2Int tilePos = TileTransformer.ScreenToCoord(mousePosition); if (level.IsTileInBounds(tilePos.x, tilePos.y)) { mainCursorSr.enabled = true; mainCursorSr.sortingOrder = SortingOrders.TileOrder(tilePos.x, tilePos.y, TileSubLayer.Furniture); IFurnitureSprite sprite = DataManager.furnitureSpriteData.GetDataById(index); mainCursorSr.sprite = sprite.GetSprite(orientation); mainCursorGo.transform.position = TileTransformer.CoordToWorld(tilePos); } else { mainCursorSr.enabled = false; } }
public override void UpdateCursors(Vector2 mousePosition) { Vector2Int coords = TileTransformer.ScreenToCoord(mousePosition); if (level.IsTileInBounds(coords.x, coords.y)) { mainCursorSr.enabled = true; mainCursorSr.sortingOrder = SortingOrders.FloorOrder(coords.x, coords.y, FloorSubLayer.Cursor); mainCursorGo.transform.position = TileTransformer.CoordToWorld(coords); mainCursorSr.sprite = GetCursorSprite(coords); } else { mainCursorSr.enabled = false; } return; }
public override void UpdateCursors(Vector2 mousePosition) { base.UpdateCursors(mousePosition); while (activeStaticCursors.Count > 0) { SimplePool.Despawn(activeStaticCursors.Pop()); } if (!validClickStart) { return; } Vector2Int startCoords = dragStartCoords; Vector2Int endCoords = TileTransformer.ScreenToCoord(mousePosition); Vector2Int minCoords = CoordUtil.MinCoords(startCoords, endCoords); Vector2Int maxCoords = CoordUtil.MaxCoords(startCoords, endCoords); GameObject cursorPrefab = Resources.Load <GameObject> (GamePaths.CursorPrefab); for (int x = minCoords.x; x <= maxCoords.x; x++) { for (int y = minCoords.y; y <= maxCoords.y; y++) { Vector3 pos = TileTransformer.CoordToWorld(x, y); GameObject staticCursorGo = SimplePool.Spawn(cursorPrefab, pos, Quaternion.identity); SpriteRenderer staticCursorSr = staticCursorGo.GetComponent <SpriteRenderer> (); staticCursorSr.sprite = GetCursorSprite(new Vector2Int(x, y)); staticCursorSr.sortingLayerName = mainCursorSr.sortingLayerName; staticCursorSr.sortingOrder = SortingOrders.FloorOrder(x, y, FloorSubLayer.Cursor); activeStaticCursors.Push(staticCursorGo); } } return; }
public void WorldToCoordRounds() { OrientationManager.SetOrientation(Orientation.North); Vector2Int coords1 = new Vector2Int(42, 0); Vector2Int coords2 = new Vector2Int(-11, -63); Vector2Int coords3 = new Vector2Int(-52, 53); Vector2 world1 = TileTransformer.CoordToWorld(coords1) + new Vector2(Settings.TILE_WIDTH / 6f, Settings.TILE_HEIGHT / 9f); Vector2 world2 = TileTransformer.CoordToWorld(coords2) + new Vector2(Settings.TILE_WIDTH / 3f, 0f); // This test adds a big offset so the coords change. Vector2 world3 = TileTransformer.CoordToWorld(coords3) + new Vector2(Settings.TILE_WIDTH_HALF, Settings.TILE_HEIGHT * 0.9f); Assert.AreEqual(coords1, TileTransformer.WorldToCoord(world1)); Assert.AreEqual(coords2, TileTransformer.WorldToCoord(world2)); Assert.AreEqual(coords3, TileTransformer.WorldToCoord(world3) + Vector2Int.one); }
public void CoordToWorldRotates() { OrientationManager.SetOrientation(Orientation.North); Vector2Int originalCoord = new Vector2Int(77, 23); Vector2 originalWorld = TileTransformer.CoordToWorld(originalCoord); OrientationManager.SetOrientation(Orientation.East); Vector2Int eastCoord = TileTransformer.RotateCoord(originalCoord); Vector2 eastWorldFromOriginal = TileTransformer.CoordToWorld(originalCoord); OrientationManager.SetOrientation(Orientation.West); Vector2Int westCoord = TileTransformer.RotateCoord(originalCoord); Vector2 westWorldFromOriginal = TileTransformer.CoordToWorld(originalCoord); OrientationManager.SetOrientation(Orientation.South); Vector2Int southCoord = TileTransformer.RotateCoord(originalCoord); Vector2 southWorldFromOriginal = TileTransformer.CoordToWorld(originalCoord); OrientationManager.SetOrientation(Orientation.North); Assert.AreEqual(TileTransformer.CoordToWorld(eastCoord), eastWorldFromOriginal); Assert.AreEqual(TileTransformer.CoordToWorld(westCoord), westWorldFromOriginal); Assert.AreEqual(TileTransformer.CoordToWorld(southCoord), southWorldFromOriginal); }
public void UpdatePosition() { gameObject.transform.position = TileTransformer.CoordToWorld(character.x, character.y); }