58 lines
1.7 KiB
C#
58 lines
1.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Cielonos.MainGame.Characters.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 List<MainWeaponFunctionIcon> functionIcons;
|
|
|
|
private void Awake()
|
|
{
|
|
functionIcons = new List<MainWeaponFunctionIcon>();
|
|
}
|
|
|
|
public void Initialize(MainWeaponBase mainWeapon)
|
|
{
|
|
this.mainWeapon = mainWeapon;
|
|
Sprite rectIcon = mainWeapon.contentData.rectIcon;
|
|
string weaponName = mainWeapon.contentData.className;
|
|
displayer.Initialize(rectIcon, weaponName);
|
|
|
|
ClearIcons();
|
|
|
|
foreach (KeyValuePair<string, RuntimeFunctionUnit> unit in mainWeapon.functionSm.functionUnits)
|
|
{
|
|
if (!unit.Value.data.shownInUI) continue;
|
|
|
|
MainWeaponFunctionIcon icon = Instantiate(functionIconPrefab, functionIconContainer).GetComponent<MainWeaponFunctionIcon>();
|
|
icon.Initialize(unit.Value);
|
|
functionIcons.Add(icon);
|
|
}
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
functionIcons.ForEach(icon => icon.UpdateUI());
|
|
}
|
|
|
|
private void ClearIcons()
|
|
{
|
|
foreach (MainWeaponFunctionIcon icon in functionIcons)
|
|
{
|
|
Destroy(icon.gameObject);
|
|
}
|
|
|
|
functionIcons.Clear();
|
|
}
|
|
}
|
|
} |