using System; using BrewMonster.Scripts; using Cysharp.Threading.Tasks; using ModelRenderer.Scripts.GameData; using UnityEngine; namespace BrewMonster { public class ElementDataManProvider : IAutoInitialize { private static ElementDataManProvider _instance; private elementdataman _elementDataMan; public static elementdataman GetElementDataMan() { return _instance._elementDataMan; } public async void Initialize() { await InitializeInternal(); } public async UniTask InitializeInternal() { _elementDataMan = new(); _instance = this; try { while (!AddressableManager.Instance.IsInitialized()) { await UniTask.DelayFrame(1); } var result = await _elementDataMan.load_data(); if (result == -1) { BMLogger.LogError("ElementDataManProvider: Failed to load element data"); } else { BMLogger.Log("ElementDataManProvider: Successfully loaded element data"); } } catch (Exception ex) { BMLogger.LogError($"ElementDataManProvider: Failed to load element data: {ex} - {ex.StackTrace}"); } } public void Dispose() { _elementDataMan = null; _instance = null; } } }