You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.5 KiB
44 lines
1.5 KiB
using System;
|
|
using TNode.Cache;
|
|
using TNode.Editor.Inspector.InspectorImplementation;
|
|
using Unity.VisualScripting;
|
|
using UnityEditor;
|
|
using UnityEngine;
|
|
using UnityEngine.UIElements;
|
|
|
|
namespace TNode.Editor.Inspector{
|
|
public class InspectorItemFactory{
|
|
|
|
public InspectorItem<T> Create<T>(){
|
|
//Check type of GraphDataType
|
|
var hasSpecificType = NodeEditorExtensions.HasSpecificTypeComponent<InspectorItem<T>>();
|
|
|
|
if (hasSpecificType){
|
|
return NodeEditorExtensions.CreateNodeComponentFromGenericType<InspectorItem<T>>();
|
|
}
|
|
|
|
if (typeof(T).IsEnum){
|
|
|
|
return NodeEditorExtensions.CreateNodeComponentFromGenericType(typeof(InspectorItem<Enum>)) as InspectorItem<T>;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public INodeDataBindingBase Create(Type t){
|
|
var genericType = typeof(InspectorItem<>).MakeGenericType(t);
|
|
var hasSpecificType = NodeEditorExtensions.HasSpecificTypeComponent(genericType);
|
|
|
|
if (hasSpecificType){
|
|
return NodeEditorExtensions.CreateNodeComponentFromGenericType(genericType) as INodeDataBindingBase;
|
|
}
|
|
|
|
if (t.IsEnum){
|
|
|
|
return NodeEditorExtensions.CreateNodeComponentFromGenericType(typeof(InspectorItem<Enum>)) as INodeDataBindingBase;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
}
|
|
}
|
|
|