using System; using System.Collections.Generic; using Cielonos.MainGame.Inventory; using SLSUtilities.UI; using UnityEngine; namespace Cielonos.MainGame.UI { public class MainWeaponUIArea : UIElementBase { public MainWeaponBase mainWeapon; public GameObject functionIconPrefab; public RectTransform functionIconContainer; public MainWeaponDisplayer displayer; public MainWeaponFunctionIcon mainFunctionIcon; public List functionIcons; public Dictionary functionIconDict; private void Awake() { functionIcons = new List(); functionIconDict = new Dictionary(); } public void Initialize(MainWeaponBase mainWeapon) { this.mainWeapon = mainWeapon; string weaponName = mainWeapon.contentData.itemClass.Name; ClearIcons(); foreach (KeyValuePair unit in mainWeapon.functionSm.functionUnits) { if (unit.Value.data.isMain) { mainFunctionIcon.Initialize(unit.Value); functionIconDict[unit.Key] = mainFunctionIcon; } else { if (!unit.Value.data.shownInUI) continue; MainWeaponFunctionIcon icon = Instantiate(functionIconPrefab, functionIconContainer).GetComponent(); icon.Initialize(unit.Value); functionIcons.Add(icon); functionIconDict[unit.Key] = icon; } } } private void Update() { functionIcons.ForEach(icon => icon.UpdateUI()); } private void ClearIcons() { foreach (MainWeaponFunctionIcon icon in functionIcons) { Destroy(icon.gameObject); } functionIcons.Clear(); functionIconDict.Clear(); } } }