카테고리 초기화 및 찾는 로직 수정

This commit is contained in:
NTG 2025-09-01 17:20:09 +09:00
parent 1b039ea8c8
commit 627b0aedf5
2 changed files with 13 additions and 35 deletions

View File

@ -65,7 +65,6 @@ protected override void OnCreatedInitializePopup()
{ {
InitializeViews(); InitializeViews();
InitializeTabGroups(); InitializeTabGroups();
SetupCategoryTabs();
SetupBindings(); SetupBindings();
} }
@ -173,12 +172,6 @@ private void InitializeViews()
} }
} }
private void SetupCategoryTabs()
{
_menuCategoryTabs.UseDefaultAllowedValues();
_cookwareCategoryTabs.UseDefaultAllowedValues();
}
private void InitializeTabGroups() private void InitializeTabGroups()
{ {
_sectionTabs.Initialize(OnSectionTabSelected); _sectionTabs.Initialize(OnSectionTabSelected);
@ -189,7 +182,7 @@ private void InitializeTabGroups()
private void UpdateSectionTabs() private void UpdateSectionTabs()
{ {
if (_viewModel == null) return; if (_viewModel == null) return;
_sectionTabs.SelectTab((int)_viewModel.CurrentSection); _sectionTabs.TrySelectTab((int)_viewModel.CurrentSection);
} }
private void UpdateCategoryTabs() private void UpdateCategoryTabs()
@ -199,10 +192,10 @@ private void UpdateCategoryTabs()
switch (_viewModel.CurrentSection) switch (_viewModel.CurrentSection)
{ {
case SectionButtonType.Menu: case SectionButtonType.Menu:
_menuCategoryTabs.SelectTab((int)_viewModel.CurrentCategory); _menuCategoryTabs.TrySelectTab((int)_viewModel.CurrentCategory);
break; break;
case SectionButtonType.Cookware: case SectionButtonType.Cookware:
_cookwareCategoryTabs.SelectTab((int)_viewModel.CurrentCategory); _cookwareCategoryTabs.TrySelectTab((int)_viewModel.CurrentCategory);
break; break;
} }
} }
@ -264,7 +257,8 @@ private void HandleCloseRequested()
private void HandleMenuCategorySelected(InventoryCategoryType category) private void HandleMenuCategorySelected(InventoryCategoryType category)
{ {
_menuCategoryTabs.SelectTab((int)category); if (_menuCategoryTabs.TrySelectTab((int)category)) return;
if (_cookwareCategoryTabs.TrySelectTab((int)category)) return;
} }
private void OnSectionTabSelected(int sectionValue) private void OnSectionTabSelected(int sectionValue)

View File

@ -76,22 +76,6 @@ public void Initialize(Action<int> onTabSelected)
InitializeTabs(); InitializeTabs();
} }
/// <summary>
/// 기본 허용 값들을 사용하여 탭을 초기화합니다.
/// </summary>
public void UseDefaultAllowedValues()
{
if (TabButtonConfig.TryGetValue(_tabButtonType, out List<int> defaultValues))
{
// 기본값을 바로 사용하여 탭 초기화
InitializeTabsWithValues(defaultValues);
}
else
{
Debug.LogWarning($"TabButtonType {_tabButtonType}에 대한 설정이 정의되지 않았습니다.", this);
}
}
/// <summary> /// <summary>
/// 지정된 값들로 탭들을 초기화합니다. /// 지정된 값들로 탭들을 초기화합니다.
/// </summary> /// </summary>
@ -144,24 +128,23 @@ private void InitializeTabs()
/// </summary> /// </summary>
private void HandleTabButtonClicked(int tabValue) private void HandleTabButtonClicked(int tabValue)
{ {
SelectTab(tabValue); TrySelectTab(tabValue);
} }
/// <summary> /// <summary>
/// 지정된 값을 가진 탭을 선택합니다. /// 지정된 값을 가진 탭을 선택합니다.
/// </summary> /// </summary>
public void SelectTab(int tabValue) public bool TrySelectTab(int tabValue)
{ {
if (_tabLookup == null || _tabLookup.Count == 0) if (_tabLookup == null || _tabLookup.Count == 0)
{ {
Debug.LogWarning("탭 룩업이 초기화되지 않았습니다.", this); Debug.LogWarning("탭 룩업이 초기화되지 않았습니다.", this);
return; return false;
} }
if (!_tabLookup.ContainsKey(tabValue)) if (_tabLookup.ContainsKey(tabValue) == false)
{ {
Debug.LogWarning($"탭 값 {tabValue}에 해당하는 탭을 찾을 수 없습니다.", this); return false;
return;
} }
CurrentTabValue = tabValue; CurrentTabValue = tabValue;
@ -174,6 +157,7 @@ public void SelectTab(int tabValue)
// 이벤트 호출 // 이벤트 호출
OnTabSelected?.Invoke(tabValue); OnTabSelected?.Invoke(tabValue);
return true;
} }
/// <summary> /// <summary>
@ -185,7 +169,7 @@ public void SelectFirstTab()
if (_tabButtons[0] != null) if (_tabButtons[0] != null)
{ {
var firstTabValue = _tabButtons[0].TabValue; var firstTabValue = _tabButtons[0].TabValue;
SelectTab(firstTabValue); TrySelectTab(firstTabValue);
} }
} }
@ -223,7 +207,7 @@ public void Move(int direction)
// 상호작용 가능한 탭을 찾았으면 이동 // 상호작용 가능한 탭을 찾았으면 이동
if (IsTabInteractable(tabValues[newIndex])) if (IsTabInteractable(tabValues[newIndex]))
{ {
SelectTab(tabValues[newIndex]); TrySelectTab(tabValues[newIndex]);
} }
} }