2020-10-23 01:48:00 +11:00
|
|
|
|
//using System;
|
|
|
|
|
//using System.Collections.Generic;
|
|
|
|
|
//using System.Linq;
|
|
|
|
|
//using System.Reflection;
|
|
|
|
|
//using UnityEngine;
|
|
|
|
|
//using Explorer.UI;
|
|
|
|
|
//using Explorer.UI.Shared;
|
|
|
|
|
//using Explorer.Helpers;
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
//namespace Explorer.CacheObject
|
|
|
|
|
//{
|
|
|
|
|
// public class CacheObjectBase
|
|
|
|
|
// {
|
|
|
|
|
// public InteractiveValue IValue;
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// public virtual bool CanWrite => false;
|
|
|
|
|
// public virtual bool HasParameters => false;
|
|
|
|
|
// public virtual bool IsMember => false;
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// public bool IsStaticClassSearchResult { get; set; }
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// public virtual void Init(object obj, Type valueType)
|
|
|
|
|
// {
|
|
|
|
|
// if (valueType == null && obj == null)
|
|
|
|
|
// {
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// //ExplorerCore.Log("Initializing InteractiveValue of type " + valueType.FullName);
|
2020-10-10 20:19:56 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// InteractiveValue interactive;
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// if (valueType == typeof(GameObject) || valueType == typeof(Transform))
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveGameObject();
|
|
|
|
|
// }
|
|
|
|
|
// else if (valueType == typeof(Texture2D))
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveTexture2D();
|
|
|
|
|
// }
|
|
|
|
|
// else if (valueType == typeof(Texture))
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveTexture();
|
|
|
|
|
// }
|
|
|
|
|
// else if (valueType == typeof(Sprite))
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveSprite();
|
|
|
|
|
// }
|
|
|
|
|
// else if (valueType.IsPrimitive || valueType == typeof(string))
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractivePrimitive();
|
|
|
|
|
// }
|
|
|
|
|
// else if (valueType.IsEnum)
|
|
|
|
|
// {
|
|
|
|
|
// if (valueType.GetCustomAttributes(typeof(FlagsAttribute), true) is object[] attributes && attributes.Length > 0)
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveFlags();
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveEnum();
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// else if (valueType == typeof(Vector2) || valueType == typeof(Vector3) || valueType == typeof(Vector4))
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveVector();
|
|
|
|
|
// }
|
|
|
|
|
// else if (valueType == typeof(Quaternion))
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveQuaternion();
|
|
|
|
|
// }
|
|
|
|
|
// else if (valueType == typeof(Color))
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveColor();
|
|
|
|
|
// }
|
|
|
|
|
// else if (valueType == typeof(Rect))
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveRect();
|
|
|
|
|
// }
|
|
|
|
|
// // must check this before IsEnumerable
|
|
|
|
|
// else if (ReflectionHelpers.IsDictionary(valueType))
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveDictionary();
|
|
|
|
|
// }
|
|
|
|
|
// else if (ReflectionHelpers.IsEnumerable(valueType))
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveEnumerable();
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// interactive = new InteractiveValue();
|
|
|
|
|
// }
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// interactive.Value = obj;
|
|
|
|
|
// interactive.ValueType = valueType;
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// this.IValue = interactive;
|
|
|
|
|
// this.IValue.OwnerCacheObject = this;
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// UpdateValue();
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// this.IValue.Init();
|
|
|
|
|
// }
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// public virtual void Draw(Rect window, float width)
|
|
|
|
|
// {
|
|
|
|
|
// IValue.Draw(window, width);
|
|
|
|
|
// }
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// public virtual void UpdateValue()
|
|
|
|
|
// {
|
|
|
|
|
// IValue.UpdateValue();
|
|
|
|
|
// }
|
2020-10-08 06:15:42 +11:00
|
|
|
|
|
2020-10-23 01:48:00 +11:00
|
|
|
|
// public virtual void SetValue() => throw new NotImplementedException();
|
|
|
|
|
// }
|
|
|
|
|
//}
|