コード例 #1
0
ファイル: LastFM.cs プロジェクト: SnoUweR/iTunesSVKS-2
        /// <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;
        }
コード例 #2
0
    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;
    }
コード例 #3
0
 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();
 }
コード例 #4
0
    ////////////////////////////////////////////////

    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;
    }
コード例 #5
0
    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);
        }
    }
コード例 #6
0
    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));
        }
    }
コード例 #7
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));
        }
    }
コード例 #8
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;
    }
コード例 #9
0
ファイル: LastFM.cs プロジェクト: SnoUweR/iTunesSVKS-2
 /// <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()));
 }