// Use this for initialization
    void Start()
    {
        _uiItems = GetComponent <CSlotPanel>().uiItems;
        _uiItems.ForEach(item => item.isCraftingSlot = true);

        if (_recipeDatabase == null)
        {
            _recipeDatabase = CAssetBundleManager.GetRecipeDatabase();
        }
    }
Esempio n. 2
0
    public static void UpdateDatabase()
    {
        if (!Directory.Exists(CUtillity.databaseExportPath))
        {
            Directory.CreateDirectory(CUtillity.databaseExportPath);
        }

        CCraftRecipeDatabase recipeDatabase = UnityEditor.AssetDatabase.LoadAssetAtPath <CCraftRecipeDatabase>(exportFile);

        if (recipeDatabase == null)
        {
            recipeDatabase = ScriptableObject.CreateInstance <CCraftRecipeDatabase>();
            UnityEditor.AssetDatabase.CreateAsset((ScriptableObject)recipeDatabase, exportFile);
        }

        recipeDatabase.recipes.Clear();

        using (StreamReader reader = new StreamReader(targetFile))
        {
            // 헤더 건너뜀
            reader.ReadLine();
            reader.ReadLine();

            while (!reader.EndOfStream)
            {
                string   line        = reader.ReadLine();
                string[] dataStrings = line.Trim().Split(new char[] { ',' }, System.StringSplitOptions.RemoveEmptyEntries);

                int index = 0;

                CCraftRecipe recipe = new CCraftRecipe();
                int.TryParse(dataStrings[index++], out recipe.itemToCraft);

                for (int i = index; i < dataStrings.Length; ++i)
                {
                    int.TryParse(dataStrings[i], out recipe.requiredItems[i - 1]);
                }

                recipeDatabase.recipes.Add(recipe);
            }
        }

        UnityEditor.AssetDatabase.SaveAssets();

        Debug.Log("Updated");
    }