Implement ruleset config browser.
This commit is contained in:
@@ -1,13 +1,10 @@
|
||||
using Cryville.Common.Unity;
|
||||
using Cryville.Crtr.Browsing.Actions;
|
||||
using Cryville.Crtr.Config.UI;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Cryville.Crtr.Browsing.UI {
|
||||
public class ResourceBrowserMaster : SingletonBehaviour<ResourceBrowserMaster> {
|
||||
[SerializeField]
|
||||
ConfigPanelMaster m_configPanel;
|
||||
[SerializeField]
|
||||
Transform m_tabContainer;
|
||||
[SerializeField]
|
||||
@@ -15,10 +12,13 @@ namespace Cryville.Crtr.Browsing.UI {
|
||||
[SerializeField]
|
||||
Transform m_browserContainer;
|
||||
[SerializeField]
|
||||
GameObject m_pathedBrowserPrefab;
|
||||
[SerializeField]
|
||||
SettingsBrowser m_settingsBrowser;
|
||||
|
||||
[SerializeField]
|
||||
internal GameObject m_pathedBrowserPrefab;
|
||||
[SerializeField]
|
||||
internal GameObject m_configBrowserPrefab;
|
||||
|
||||
BrowserTab _currentTab;
|
||||
readonly Dictionary<BrowserTab, ResourceBrowser> _tabs = new Dictionary<BrowserTab, ResourceBrowser>();
|
||||
|
||||
@@ -30,22 +30,24 @@ namespace Cryville.Crtr.Browsing.UI {
|
||||
Actions = new ActionManager();
|
||||
Actions.Changed += OnActionsChanged;
|
||||
Actions.Register(new PlayChartAction());
|
||||
Actions.Register(new OpenConfigAction());
|
||||
|
||||
OnTabClicked(AddPathedBrowserTab("Local", new LegacyResourceManager(Settings.Default.GameDataPath)));
|
||||
AddPathedBrowserTab("Files", new FileSystemResourceManager());
|
||||
AddTab("Settings", m_settingsBrowser);
|
||||
AddTab("Settings", m_settingsBrowser, _tabs.Count, false);
|
||||
}
|
||||
|
||||
BrowserTab AddPathedBrowserTab(string name, IPathedResourceManager<IResourceMeta> manager) {
|
||||
var browser = Instantiate(m_pathedBrowserPrefab, m_browserContainer, false).GetComponent<PathedResourceBrowser>();
|
||||
browser.Init(this, manager);
|
||||
return AddTab(name, browser);
|
||||
return AddTab(name, browser, _tabs.Count, false);
|
||||
}
|
||||
|
||||
BrowserTab AddTab(string name, ResourceBrowser browser) {
|
||||
BrowserTab AddTab(string name, ResourceBrowser browser, int index, bool closable) {
|
||||
var tab = Instantiate(m_tabPrefab, m_tabContainer, false).GetComponent<BrowserTab>();
|
||||
tab.transform.SetSiblingIndex(index);
|
||||
tab.Icon = browser.Icon;
|
||||
tab.Text = name;
|
||||
tab.Closable = closable;
|
||||
tab.Clicked += OnTabClicked;
|
||||
tab.Closed += OnTabClosed;
|
||||
browser.gameObject.SetActive(false);
|
||||
@@ -53,6 +55,11 @@ namespace Cryville.Crtr.Browsing.UI {
|
||||
return tab;
|
||||
}
|
||||
|
||||
public void AddAndOpenTab(string name, ResourceBrowser browser) {
|
||||
browser.transform.SetParent(m_browserContainer, false);
|
||||
OnTabClicked(AddTab(name, browser, _currentTab.transform.GetSiblingIndex() + 1, true));
|
||||
}
|
||||
|
||||
void OnTabClicked(BrowserTab tab) {
|
||||
if (tab == _currentTab) return;
|
||||
if (_currentTab != null) {
|
||||
|
Reference in New Issue
Block a user