/// <summary> /// Делает попытку поиска обложки на LastFM /// </summary> /// <param name="song">Песня, обложку которой будем искать</param> /// <returns>True: Обложка найдена</returns> public bool FindCover(Song song) { FoundCoverType = CoverTypes.None; Cover.CoverSizes covers = new Cover.CoverSizes(); //Когда-нибудь я это отрефакторю (или кто-нибудь другой) // Получаем инфу о треке, от самой специфичной (для композиции) до самой обобщенной (для артиста) // и как только инфа содержит нужную по размерам обложку — прекращаем поиск if (!String.IsNullOrEmpty((covers = TrackGetInfo(song.Artist, song.Name).Covers).Large)) { FoundCoverType = CoverTypes.Track; } else if (!String.IsNullOrEmpty((covers = AlbumGetInfo(song.Artist, song.Album).Covers).Large)) { FoundCoverType = CoverTypes.Album; } else if (!String.IsNullOrEmpty((covers = ArtistGetInfo(song.Artist).Covers).Large)) { FoundCoverType = CoverTypes.Artist; } // если нашли хоть одну обложку, то скачиваем и изменяем соответсвующую переменную if (FoundCoverType != CoverTypes.None) { DownloadCover(covers.Large, GetPathFromCoverType(FoundCoverType)); _isFound = true; } return _isFound; }
public void AttachCoverToNode <T>(T nodeType, GameObject node, CoverTypes _cover) where T : BaseNode { //Debug.Log("Vector3 (gridLoc): x: " + gridLocX + " y: " + gridLocY + " z: " + gridLocZ); GameObject cover = Instantiate(GetCoverPrefab(_cover), node.transform, false); cover.transform.SetParent(node.transform); cover.GetComponent <NodeCover>().parentNode = nodeType; }
public FloorVM() { PropertyChanged += FloorVM_PropertyChanged; CoverTypes.Add(new FloorCover(FloorCoverType.Linoleum, "Линолеум")); CoverTypes.Add(new FloorCover(FloorCoverType.Laminat, "Ламинат")); CoverTypes.Add(new FloorCover(FloorCoverType.Parket, "Паркет")); CoverTypes.Add(new FloorCover(FloorCoverType.Plitka, "Плитка")); SelectedCoverType = CoverTypes.FirstOrDefault(); }
//////////////////////////////////////////////// public void AttachCoverToNode(MapNode nodeType, GameObject node, CoverTypes _cover) { //Debug.Log("Vector3Int (gridLoc): x: " + gridLocX + " y: " + gridLocY + " z: " + gridLocZ); GameObject cover = Instantiate(GetCoverPrefab(_cover), node.transform, false); cover.transform.SetParent(node.transform); cover.transform.localScale = GetCoverSize(_cover); cover.GetComponent <NodeCover>().parentNode = nodeType; nodeType.NodeCover = cover; }
private GameObject GetCoverPrefab(CoverTypes cover) { switch (cover) { case CoverTypes.NormalCover: return(_normalCoverPrefab); case CoverTypes.OpenCover: return(_openCoverPrefab); case CoverTypes.LargeGarageCover: return(_largeGarageCoverPrefab); case CoverTypes.ConnectorCover: return(_connectorCoverPrefab); default: Debug.Log("OPPSALA WE HAVE AN ISSUE HERE"); return(null); } }
private Vector3Int GetCoverSize(CoverTypes cover) { switch (cover) { case CoverTypes.NormalCover: return(new Vector3Int(MapSettings.MapPiecePanelCountXZ, MapSettings.MapPiecePanelCountY, MapSettings.MapPiecePanelCountXZ) * 2); case CoverTypes.OpenCover: return(new Vector3Int(MapSettings.MapPiecePanelCountXZ, MapSettings.MapPiecePanelCountY, MapSettings.MapPiecePanelCountXZ) * 2); case CoverTypes.ConnectorCover: return(new Vector3Int(MapSettings.ConnectorPiecePanelCountX, MapSettings.ConnectorPiecePanelCountY, MapSettings.ConnectorPiecePanelCountZ) * 2); case CoverTypes.ConnectorUPCover: return(new Vector3Int(MapSettings.ConnectorPiecePanelCountX, MapSettings.MapPiecePanelCountY, MapSettings.ConnectorPiecePanelCountX) * 2); default: Debug.Log("OPPSALA WE HAVE AN ISSUE HERE"); return(new Vector3Int(0, 0, 0)); } }
private Vector3Int GetCoverSize(CoverTypes cover) // All these magic numbers are stupid but couldnt figure out a better way at this stage, any type of equation doesnt work { switch (cover) { case CoverTypes.NormalCover: return(new Vector3Int(34, 18, 34)); case CoverTypes.OpenCover: return(new Vector3Int(102, 54, 102)); case CoverTypes.ConnectorCover: return(new Vector3Int(11, 11, 34)); case CoverTypes.ConnectorUPCover: return(new Vector3Int(11, 18, 11)); default: Debug.Log("OPPSALA WE HAVE AN ISSUE HERE"); return(new Vector3Int(0, 0, 0)); } }
//////////////////////////////////////////////// //////////////////////////////////////////////// public static void CreateMapNodesForWorldNode(WorldNode worldNode) { int maxNodeSizeX = 9; int maxNodeSizeY = 9; int maxNodeSizeZ = 9; int nodeDistanceX = MapSettings.MapNodeCountDistanceXZ + 4; int nodeDistanceY = MapSettings.MapNodeCountDistanceY + 4; int nodeDistanceZ = MapSettings.MapNodeCountDistanceXZ + 4; int vectStartLocX = -(nodeDistanceX * 4); int vectStartLocY = -(nodeDistanceY * 4); int vectStartLocZ = -(nodeDistanceZ * 4); int vectLocX = vectStartLocX; int vectLocY = vectStartLocY; int vectLocZ = vectStartLocZ; Dictionary <int, int[]> mapPieces = worldNode.NodeData.worldNodeMapPieces; List <MapNode> mapNodes = new List <MapNode>(); int locCounter = 1; // coz locations start at 1 for (int y = 0; y < maxNodeSizeY; y++) { for (int z = 0; z < maxNodeSizeZ; z++) { for (int x = 0; x < maxNodeSizeX; x++) { if (mapPieces.ContainsKey(locCounter)) { MapNodeStruct mapData = new MapNodeStruct() { NodeID = new Vector3Int(vectLocX, vectLocY, vectLocZ), mapPiece = (MapPieceTypes)mapPieces[locCounter][0], location = new Vector3Int(vectLocX, vectLocY, vectLocZ), rotation = new Vector3Int(0, mapPieces[locCounter][1], 0), parentNode = worldNode.gameObject.transform }; MapNode mapNode = WorldBuilder._nodeBuilder.CreateMapNode(mapData); mapNode.worldNodeParent = worldNode; mapNodes.Add(mapNode); if (!worldNode.entrance) // this could be better { CoverTypes coverType = CoverTypes.NormalCover; if (mapNode.NodeMapPiece == MapPieceTypes.ConnectorPiece_Hor_Empty) { coverType = CoverTypes.ConnectorCover; } else if (mapNode.NodeMapPiece == MapPieceTypes.ConnectorPiece_Ver_Empty) { coverType = CoverTypes.ConnectorUPCover; } WorldBuilder._nodeBuilder.AttachCoverToNode(mapNode, mapNode.gameObject, coverType); } } locCounter++; vectLocX += nodeDistanceX; } vectLocX = vectStartLocX; vectLocZ += nodeDistanceZ; } vectLocX = vectStartLocX; vectLocZ = vectStartLocZ; vectLocY += nodeDistanceY; } worldNode.mapNodes = mapNodes; }
/// <summary> /// Возвращает сгенерированный путь для сохранения обложки, в зависимости от /// её типа /// </summary> /// <param name="coverType">Тип обложки</param> /// <returns>Путь для сохранения</returns> private string GetPathFromCoverType(CoverTypes coverType) { return String.Concat(Environment.CurrentDirectory, String.Format(@"\{0}Cover.jpg", coverType.ToString())); }