Pull down IPathedResourceManager
. Reconstruct resource browser.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
using Cryville.Common.Unity;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
@@ -17,26 +18,31 @@ namespace Cryville.Crtr.Browsing.UI {
|
||||
[SerializeField]
|
||||
TMP_Text m_desc;
|
||||
|
||||
#pragma warning disable IDE0051
|
||||
StateTweener _tweener;
|
||||
|
||||
void Awake() {
|
||||
_tweener = GetComponent<StateTweener>();
|
||||
}
|
||||
|
||||
void OnDestroy() {
|
||||
OnReset();
|
||||
}
|
||||
protected override void OnReset() {
|
||||
if (meta.Icon != null) meta.Icon.Cancel();
|
||||
if (m_icon.sprite != null && m_icon.sprite != m_iconPlaceholder) {
|
||||
Destroy(m_icon.sprite.texture);
|
||||
Destroy(m_icon.sprite);
|
||||
}
|
||||
_tweener.ClearState();
|
||||
}
|
||||
#pragma warning restore IDE0051
|
||||
|
||||
internal override void Load(int id, ResourceItemMeta item) {
|
||||
OnDestroy();
|
||||
base.Load(id, item);
|
||||
protected override void OnLoad(bool selected) {
|
||||
_dir = meta.IsDirectory;
|
||||
m_icon.sprite = m_iconPlaceholder;
|
||||
if (meta.Icon != null) meta.Icon.Destination = DisplayCover;
|
||||
m_title.text = meta.Name;
|
||||
m_desc.text = string.Format("{0}\n{1}", meta.DescriptionMain, meta.DescriptionSub);
|
||||
if (selected) _tweener.EnterState("Selected");
|
||||
}
|
||||
private void DisplayCover(bool succeeded, Texture2D tex) {
|
||||
if (succeeded) {
|
||||
@@ -45,9 +51,17 @@ namespace Cryville.Crtr.Browsing.UI {
|
||||
}
|
||||
public void OnClick() {
|
||||
if (Id == null) return;
|
||||
var resourceBrowser = GetComponentInParent<ResourceBrowser>();
|
||||
var resourceBrowser = GetComponentInParent<PathedResourceBrowser>();
|
||||
if (_dir) resourceBrowser.OnDirectoryItemClicked(Id.Value);
|
||||
else resourceBrowser.OnObjectItemClicked(Id.Value);
|
||||
}
|
||||
internal override void OnSelect() {
|
||||
base.OnSelect();
|
||||
_tweener.EnterState("Selected", 0.1f);
|
||||
}
|
||||
internal override void OnDeselect() {
|
||||
base.OnDeselect();
|
||||
_tweener.ExitState("Selected", 0.1f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user