Exemple #1
0
 /// <summary>
 /// This function will find out if there is some configuration set up, it will set it up if it is not.
 /// </summary>
 public static void PresentConfig()
 {
     if (!PlayerPrefs.HasKey("DefaultsInitialized"))
     {
         DefaultConfigCreator.InitializeDefaults();
     }
 }
 public override void OnInspectorGUI()
 {
     DrawDefaultInspector();
     if (GUILayout.Button("Rewrite config with default."))
     {
         DefaultConfigCreator.InitializeDefaults();
     }
 }
    private void LoadTileConfiguration()
    {
        tileConnections = new Dictionary <string, Dictionary <Direction, Direction> >();
        tilesCounts     = new Dictionary <string, int>();
        tilesNames      = new List <string>();

        DefaultConfigCreator.PresentConfig();
        string configFile = PlayerPrefs.GetString("TilesConfig");
        int    curr       = 0;

        char[] delimiter = { ' ' };
        foreach (string line in configFile.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
        {
            string[] words = line.Split(delimiter);
            if (words.Length != 9)
            {
                Debug.LogError("Config file has wrong number of tokens!");
                throw new FormatException();
            }

            string tileName = curr++.ToString();
            tilesNames.Add(tileName);
            tilesCounts[tileName] = int.Parse(words[0]);
            //tilesCounts.Add(int.Parse(words[0]));
            Dictionary <Direction, Direction> directions = new Dictionary <Direction, Direction>();
            bool[] directionsUsed = new bool[4];
            for (int i = 0; i < 4; i++)
            {
                Direction from = (Direction)Enum.Parse(typeof(Direction), words[i * 2 + 1]);
                Direction where           = (Direction)Enum.Parse(typeof(Direction), words[i * 2 + 2]);
                directionsUsed[(int)from] = true;
                directions[from]          = where;
            }
            if (!(directionsUsed[0] && directionsUsed[1] && directionsUsed[2] && directionsUsed[3]))
            {
                throw new FormatException("Tile: " + tileName + " has invalid connections format!" + Environment.NewLine + "Line: " + line);
            }

            tileConnections[tileName] = directions;
        }
    }