using UnityEngine; using System.Collections; using System.Collections.Generic; namespace cn.sharesdk.unity3d.sdkporter { public class PBXDictionary : Dictionary { public void Append( PBXDictionary dictionary ) { foreach( var item in dictionary) { this.Add( item.Key, item.Value ); } } public void Append( PBXDictionary dictionary ) where T : PBXObject { foreach( var item in dictionary) { this.Add( item.Key, item.Value ); } } } public class PBXDictionary : Dictionary where T : PBXObject { public PBXDictionary() { } public PBXDictionary( PBXDictionary genericDictionary ) { foreach( KeyValuePair currentItem in genericDictionary ) { if( ((string)((PBXDictionary)currentItem.Value)[ "isa" ]).CompareTo( typeof(T).Name ) == 0 ) { T instance = (T)System.Activator.CreateInstance( typeof(T), currentItem.Key, (PBXDictionary)currentItem.Value ); this.Add( currentItem.Key, instance ); } } } public void Add( T newObject ) { this.Add( newObject.guid, newObject ); } public void Append( PBXDictionary dictionary ) { foreach( KeyValuePair item in dictionary) { this.Add( item.Key, (T)item.Value ); } } } }