Add support for directory items.
This commit is contained in:
@@ -2,12 +2,14 @@ using UnityEngine;
|
||||
|
||||
namespace Cryville.Crtr.Browsing.UI {
|
||||
internal abstract class BrowserItem : MonoBehaviour {
|
||||
public int? Id { get; private set; }
|
||||
protected IResourceMeta meta;
|
||||
internal void Load(int id, IResourceMeta item, bool selected) {
|
||||
protected int? Id { get; private set; }
|
||||
protected bool IsDir { get; private set; }
|
||||
protected IResourceMeta Meta { get; private set; }
|
||||
internal void Load(int id, bool isDir, IResourceMeta item, bool selected) {
|
||||
OnReset();
|
||||
Id = id;
|
||||
meta = item;
|
||||
IsDir = isDir;
|
||||
Meta = item;
|
||||
OnLoad(selected);
|
||||
}
|
||||
protected abstract void OnReset();
|
||||
|
@@ -43,7 +43,7 @@ namespace Cryville.Crtr.Browsing.UI {
|
||||
m_icon.sprite = m_iconPlaceholder;
|
||||
m_desc.text = string.Empty;
|
||||
|
||||
var basicProps = meta.EnumerateBasicProperties(true).GetEnumerator();
|
||||
var basicProps = Meta.EnumerateBasicProperties(true).GetEnumerator();
|
||||
if (basicProps.MoveNext()) {
|
||||
m_title.text = basicProps.Current.Value.ToString();
|
||||
if (basicProps.MoveNext()) {
|
||||
@@ -54,9 +54,10 @@ namespace Cryville.Crtr.Browsing.UI {
|
||||
m_title.text = "<color=#ff0000>Invalid resource</color>";
|
||||
}
|
||||
|
||||
_cover = meta.EnumerateProperties<AsyncDelivery<Texture2D>>().FirstOrDefault().Value;
|
||||
_cover = Meta.EnumerateProperties<AsyncDelivery<Texture2D>>().FirstOrDefault().Value;
|
||||
|
||||
if (_cover != null) _cover.Destination = DisplayCover;
|
||||
if (IsDir) _tweener.EnterState("Directory");
|
||||
if (selected) _tweener.EnterState("Selected");
|
||||
}
|
||||
void DisplayCover(bool succeeded, Texture2D tex) {
|
||||
|
@@ -86,10 +86,10 @@ namespace Cryville.Crtr.Browsing.UI {
|
||||
_items[id] = bi;
|
||||
try {
|
||||
var item = _manager[id];
|
||||
bi.Load(id, item, _selectedItems.Contains(id));
|
||||
bi.Load(id, _manager.IsDirectory(id), item, _selectedItems.Contains(id));
|
||||
}
|
||||
catch (Exception) {
|
||||
bi.Load(id, null, _selectedItems.Contains(id));
|
||||
bi.Load(id, _manager.IsDirectory(id), null, _selectedItems.Contains(id));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@@ -90,6 +90,20 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_states:
|
||||
- Name: Directory
|
||||
Attributes:
|
||||
- Attribute:
|
||||
Component: {fileID: 2616337343185291959}
|
||||
Attribute: color.r
|
||||
Value: 0.4
|
||||
- Attribute:
|
||||
Component: {fileID: 2616337343185291959}
|
||||
Attribute: color.g
|
||||
Value: 0.6
|
||||
- Attribute:
|
||||
Component: {fileID: 2616337343185291959}
|
||||
Attribute: color.b
|
||||
Value: 1
|
||||
- Name: Selected
|
||||
Attributes:
|
||||
- Attribute:
|
||||
|
Reference in New Issue
Block a user