static void PreloadClassIcon() { if (ClassIconDictionary == null) { Type[] iconEmbeddedClasses = { typeof(UIButton), typeof(UICheckBox), typeof(UIDocument), typeof(UIEditText), typeof(UIEllipse), typeof(UIImage), typeof(UILabel), typeof(UIPanel), typeof(UIRadioButton), typeof(UIRect), typeof(UIRoundedRect), typeof(UIScrollablePanel), typeof(UISprite), typeof(UIVideo), typeof(UIWindow), }; ClassIconDictionary = new SortedList <int, ImageSource>(iconEmbeddedClasses.Length); ClassIconDictionary.Add(0, BitmapFrame.Create(GetEmbeddedResourceUri("Classes/Default.png"))); foreach (var item in iconEmbeddedClasses) { var uri = GetEmbeddedResourceUri(string.Format("Classes/{0}.png", item.Name)); ClassIconDictionary.Add(ClassIDAttribute.GetClassID(item), BitmapFrame.Create(uri)); } } }
static UIElementFactory() { ICollection <Type> moduleClasses = AssemblyUtility.FindClasses(typeof(UIElement), true, false); entries = new Dictionary <int, ConstructorInfo>(moduleClasses.Count); foreach (Type item in moduleClasses) { ClassIDAttribute attribute = item.GetCustomAttribute <ClassIDAttribute>(); if (attribute != null) { Debug.Assert(entries.ContainsKey(attribute.ClassID) == false); entries.Add(attribute.ClassID, item.GetConstructor(Type.EmptyTypes)); } } }
public AssetStreamWriter(Stream output, GameModuleTree modules, GameAssetStorage storage) : base(output) { Modules = modules; Storage = storage ?? (GameAssetStorage)modules.Root.FindChildByClassID(ClassIDAttribute.GetClassID(typeof(GameAssetStorage))); }