Heroes_of_Hiis/Assets/Rotary Heart/SerializableDictionaryLite/Example/DataBaseExample.cs

180 lines
5.4 KiB
C#

using RotaryHeart.Lib.SerializableDictionary;
using UnityEngine;
namespace RotaryHeart.Lib
{
[CreateAssetMenu(fileName = "DataBase.asset", menuName = "Data Base")]
public class DataBaseExample : ScriptableObject
{
public enum EnumExample
{
None,
Value1,
Value2,
Value3,
Value4,
Value5,
Value6
}
[System.Serializable]
public class ChildTest
{
public Color myChildColor;
public bool myChildBool;
public Gradient test;
}
[System.Serializable]
public class ClassTest
{
public string id;
public float test;
public string test2;
public Quaternion quat;
public ChildTest[] childTest;
}
[System.Serializable]
public class ArrayTest
{
public int[] myArray;
}
[System.Serializable]
public class AdvancedGenericClass
{
[Range(0, 100)]
public float value;
public bool Equals(AdvancedGenericClass other)
{
if (ReferenceEquals(null, other)) return false;
if (ReferenceEquals(this, other)) return true;
return other.value == value;
}
public override bool Equals(object obj)
{
if (ReferenceEquals(null, obj)) return false;
if (ReferenceEquals(this, obj)) return true;
if (obj.GetType() != typeof(AdvancedGenericClass)) return false;
return Equals((AdvancedGenericClass)obj);
}
public override int GetHashCode()
{
unchecked
{
return value.GetHashCode();
}
}
}
[SerializeField]
public Generic_String _genericString;
[SerializeField]
public Generic_Generic _genericGeneric;
[SerializeField, ID("id")]
private S_GenericDictionary _stringGeneric;
[SerializeField]
private I_GenericDictionary _intGeneric;
[SerializeField]
private I_GO _intGameobject;
[SerializeField]
private GO_I _gameobjectInt;
[SerializeField]
private S_GO _stringGameobject;
[SerializeField]
private GO_S _gameobjectString;
[SerializeField]
private S_Mat _stringMaterial;
[SerializeField]
private Mat_S _materialString;
[SerializeField]
private V3_Q _vector3Quaternion;
[SerializeField]
private Q_V3 _quaternionVector3;
[SerializeField]
private S_AC _stringAudioClip;
[SerializeField]
private AC_S _audioClipString;
[SerializeField]
private C_Int _charInt;
[SerializeField]
private G_Int _gradientInt;
[SerializeField]
private Int_IntArray _intArray;
[SerializeField]
private Enum_String _enumString;
[SerializeField, DrawKeyAsProperty]
private AdvanGeneric_String _advancedGenericKey;
[System.Serializable]
public class Generic_String : SerializableDictionaryBase<ClassTest, string> { }
[System.Serializable]
public class Generic_Generic : SerializableDictionaryBase<ClassTest, ClassTest> { }
[System.Serializable]
public class C_Int : SerializableDictionaryBase<char, int> { }
[System.Serializable]
public class G_Int : SerializableDictionaryBase<Gradient, int> { }
[System.Serializable]
public class I_GO : SerializableDictionaryBase<int, GameObject> { }
[System.Serializable]
public class GO_I : SerializableDictionaryBase<GameObject, int> { }
[System.Serializable]
public class S_GO : SerializableDictionaryBase<string, GameObject> { }
[System.Serializable]
public class GO_S : SerializableDictionaryBase<GameObject, string> { }
[System.Serializable]
public class S_Mat : SerializableDictionaryBase<string, Material> { }
[System.Serializable]
public class Mat_S : SerializableDictionaryBase<Material, string> { }
[System.Serializable]
public class S_AC : SerializableDictionaryBase<string, AudioClip> { }
[System.Serializable]
public class AC_S : SerializableDictionaryBase<AudioClip, string> { }
[System.Serializable]
public class S_Sprite : SerializableDictionaryBase<string, Sprite> { }
[System.Serializable]
public class V3_Q : SerializableDictionaryBase<Vector3, Quaternion> { }
[System.Serializable]
public class Q_V3 : SerializableDictionaryBase<Quaternion, Vector3> { }
[System.Serializable]
public class S_GenericDictionary : SerializableDictionaryBase<string, ClassTest> { }
[System.Serializable]
public class I_GenericDictionary : SerializableDictionaryBase<int, ClassTest> { }
[System.Serializable]
public class Int_IntArray : SerializableDictionaryBase<int, ArrayTest> { }
[System.Serializable]
public class Enum_String : SerializableDictionaryBase<EnumExample, string> { };
[System.Serializable]
public class AdvanGeneric_String : SerializableDictionaryBase<AdvancedGenericClass, string> { };
}
}