コード例 #1
0
        public void Initialize(DancePositionRuntime position, Settings settings)
        {
            this.gameObject.name = position.PositionName;
            position.MyHolder    = this;
            this.position        = position;
            positionName.text    = position.PositionName;



            dragger.DragStartHandler += () => ToggleMoveUpdates(true);
            dragger.DragEndHandler   += () => ToggleMoveUpdates(false);

            this.transform.localPosition = new Vector3(position.XSpot, position.YSpot, 0);
            switch (position.Difficulty)
            {
            case DancePositionRuntime.PositionDifficulty.Easy:
                background.color = settings.EasyColor;
                break;

            case DancePositionRuntime.PositionDifficulty.Med:
                background.color = settings.MedColor;
                break;

            case DancePositionRuntime.PositionDifficulty.Hard:
                background.color = settings.HardColor;
                break;

            default:
                background.color = settings.MedColor;
                break;
            }

            UpdateBackgroundWidth(backgroundWidth);
            UpdateBorderWidth(borderWidth);
            ChangeDisplayMode(this.displayMode);
            WebFileGrabber.instance.AddImageCallback(position.IconUrl, SetIcon);
        }
コード例 #2
0
        public static AllMovesRuntime GetAllMovesRuntime()
        {
            if (runtimeAllMoves == null)
            {
                string[] positions      = File.ReadAllLines(Path.Combine(Application.streamingAssetsPath, "PositionData.txt"));
                string[] moves          = File.ReadAllLines(Path.Combine(Application.streamingAssetsPath, "MoveData.txt"));
                string[] moveVariations = File.ReadAllLines(Path.Combine(Application.streamingAssetsPath, "VariationData.txt"));
                string[] peopleStyles   = File.ReadAllLines(Path.Combine(Application.streamingAssetsPath, "PeopleStyleData.txt"));

                List <DancePositionRuntime> runtimePositions = new List <DancePositionRuntime>();
                List <DanceMoveRuntime>     runtimeMoves     = new List <DanceMoveRuntime>();
                Dictionary <string, DancePersonStyleRuntime> runtimePeopleStyles = new Dictionary <string, DancePersonStyleRuntime>();

                Dictionary <string, DancePositionRuntime> nameToPosition = new Dictionary <string, DancePositionRuntime>();
                Dictionary <string, DanceMoveRuntime>     nameToMove     = new Dictionary <string, DanceMoveRuntime>();

                foreach (string line in positions)
                {
                    try
                    {
                        if (line.Length < 2)
                        {
                            continue;
                        }
                        if (line[0] == '/' && line[1] == '/')
                        {
                            continue;
                        }

                        string[] splitLine = line.Split(',');

                        DancePositionRuntime currentPosition = new DancePositionRuntime(splitLine[0]);

                        switch (splitLine[1])
                        {
                        case "Easy":
                            currentPosition.Difficulty = DancePositionRuntime.PositionDifficulty.Easy;
                            break;

                        case "Med":
                            currentPosition.Difficulty = DancePositionRuntime.PositionDifficulty.Med;
                            break;

                        case "Hard":
                            currentPosition.Difficulty = DancePositionRuntime.PositionDifficulty.Hard;
                            break;

                        default:
                            currentPosition.Difficulty = DancePositionRuntime.PositionDifficulty.Easy;
                            break;
                        }

                        switch (splitLine[2])
                        {
                        case "0":
                            currentPosition.IsADip = false;
                            break;

                        case "1":
                            currentPosition.IsADip = true;
                            break;

                        default:
                            currentPosition.IsADip = false;
                            break;
                        }

                        switch (splitLine[3])
                        {
                        case "0":
                            currentPosition.IsALift = false;
                            break;

                        case "1":
                            currentPosition.IsALift = true;
                            break;

                        default:
                            currentPosition.IsALift = false;
                            break;
                        }

                        currentPosition.XSpot = float.Parse(splitLine[4]);
                        currentPosition.YSpot = float.Parse(splitLine[5]);

                        if (splitLine.Length > 5)
                        {
                            currentPosition.IconUrl = splitLine[6];
                        }

                        nameToPosition.Add(currentPosition.PositionName, currentPosition);
                        runtimePositions.Add(currentPosition);
                    }
                    catch (Exception e)
                    {
                        Debug.Log("Error Position: " + line);
                        Debug.Log(e);
                    }
                }

                foreach (string line in moves)
                {
                    try
                    {
                        if (line.Length < 2)
                        {
                            continue;
                        }
                        if (line[0] == '/' && line[1] == '/')
                        {
                            continue;
                        }

                        string[] splitLine      = line.Split(',');
                        string[] splitPositions = splitLine[0].Split(new string[] { "->" }, System.StringSplitOptions.RemoveEmptyEntries);

                        DanceMoveRuntime currentMove = new DanceMoveRuntime();

                        currentMove.LeftPosition  = nameToPosition[splitPositions[0]];
                        currentMove.RightPosition = nameToPosition[splitPositions[1]];

                        nameToPosition[splitPositions[0]].moves.Add(currentMove);
                        nameToPosition[splitPositions[1]].moves.Add(currentMove);

                        currentMove.DanceMoveName = splitLine[0];

                        runtimeMoves.Add(currentMove);
                    }
                    catch (Exception e)
                    {
                        Debug.Log("Error Move: " + line);
                        Debug.Log(e);
                    }
                }

                foreach (string line in moveVariations)
                {
                    try
                    {
                        if (line.Length < 2)
                        {
                            continue;
                        }
                        if (line[0] == '/' && line[1] == '/')
                        {
                            continue;
                        }

                        string[] splitLine = line.Split(',');

                        nameToMove[splitLine[0]].Variations.Add(new DanceVariationRuntime()
                        {
                            BaseMove = nameToMove[splitLine[0]], VariationName = splitLine[1]
                        });
                    }

                    catch (Exception e)
                    {
                        Debug.Log("Error Variation: " + line);
                        Debug.Log(e);
                    }
                }

                foreach (string line in peopleStyles)
                {
                    try
                    {
                        if (line.Length < 2)
                        {
                            continue;
                        }
                        if (line[0] == '/' && line[1] == '/')
                        {
                            continue;
                        }

                        string[] splitLine = line.Split(',');

                        string personName    = splitLine[0];
                        string dancePartName = splitLine[1];
                        string weight        = splitLine[2];

                        DancePersonStyleRuntime targetStyle;
                        if (!runtimePeopleStyles.ContainsKey(personName))
                        {
                            runtimePeopleStyles.Add(personName, new DancePersonStyleRuntime()
                            {
                                PersonName = personName
                            });
                        }
                        targetStyle = runtimePeopleStyles[personName];

                        //if its a dance move....
                        if (dancePartName.Contains("->"))
                        {
                            targetStyle.myMoveWeights.Add(new DancePersonStyleRuntime.DanceMoveWeights()
                            {
                                TargetMove = nameToMove[dancePartName], Weight = float.Parse(weight)
                            });
                        }
                        else
                        {
                            targetStyle.myPositionWeights.Add(new DancePersonStyleRuntime.DancePositionWeights()
                            {
                                TargetPosition = nameToPosition[dancePartName], Weight = float.Parse(weight)
                            });
                        }
                    }

                    catch (Exception e)
                    {
                        Debug.Log("Error Person Style: " + line);
                        Debug.Log(e);
                    }
                }

                runtimeAllMoves = new AllMovesRuntime(runtimePositions, runtimeMoves);
            }

            return(runtimeAllMoves);
        }