private static void AcceptModule(IDictionary <string, object> dictionary, IRegistry registry) { var moduleId = ParseId(GetValue(dictionary, "Id")); var moduleName = GetValue <string>(dictionary, "Name"); var module = registry.CreateModule(moduleId, moduleName); ParseRegistryObjectBase(module, dictionary); if (dictionary.ContainsKey("Namespace")) { module.Namespace = GetValue <string>(dictionary, "Namespace"); } module.Options = (UTinyModuleOptions)ParseInt(GetValue(dictionary, "Options")); IList <object> dependenciesList; if (TryGetValue(dictionary, "Dependencies", out dependenciesList)) { foreach (var obj in dependenciesList) { module.AddExplicitModuleDependency(ParseModuleReference(obj)); } } IList <object> componentsList; if (TryGetValue(dictionary, "Components", out componentsList)) { foreach (var obj in componentsList) { module.AddComponentReference(ParseTypeReference(obj)); } } IList <object> structsList; if (TryGetValue(dictionary, "Structs", out structsList)) { foreach (var obj in structsList) { module.AddStructReference(ParseTypeReference(obj)); } } IList <object> enumsList; if (TryGetValue(dictionary, "Enums", out enumsList)) { foreach (var obj in enumsList) { module.AddEnumReference(ParseTypeReference(obj)); } } IList <object> configurationsList; if (TryGetValue(dictionary, "Configurations", out configurationsList)) { foreach (var obj in configurationsList) { module.AddConfigurationReference(ParseTypeReference(obj)); } } IList <object> entityGroupList; if (TryGetValue(dictionary, "EntityGroups", out entityGroupList)) { foreach (var obj in entityGroupList) { module.AddEntityGroupReference(ParseSceneReference(obj)); } } // @LEGACY Backwards compat if (TryGetValue(dictionary, "Scenes", out entityGroupList)) { foreach (var obj in entityGroupList) { module.AddEntityGroupReference(ParseSceneReference(obj)); } } IList <object> scriptsList; if (TryGetValue(dictionary, "Scripts", out scriptsList)) { foreach (var obj in scriptsList) { module.AddScriptReference(ParseScriptReference(obj)); } } IList <object> systemsList; if (TryGetValue(dictionary, "Systems", out systemsList)) { foreach (var obj in systemsList) { module.AddSystemReference(ParseSystemReference(obj)); } } IList <object> assetsList; if (TryGetValue(dictionary, "Assets", out assetsList)) { foreach (var obj in assetsList) { // Auto migrate existing explicit asset references if (IsUnityObject(obj)) { var unityObject = ParseUnityObject(obj); if (null == unityObject) { continue; } module.AddAsset(unityObject); } else { var assetDictionary = obj as IDictionary <string, object>; if (null != assetDictionary) { var unityObject = ParseUnityObject(GetValue(assetDictionary, "Object")); if (null == unityObject) { continue; } var asset = module.AddAsset(unityObject); asset.Name = GetValue(assetDictionary, "Name") as string; if (!assetDictionary.ContainsKey("ExportSettings")) { continue; } // @TODO Determine the asset type even if the asset does not exist! if (null != asset.Object) { var exportSettingsDictionary = GetValue(assetDictionary, "ExportSettings") as IDictionary <string, object>; if (null != exportSettingsDictionary && exportSettingsDictionary.Count > 0) { var type = asset.Object.GetType(); if (typeof(Texture2D).IsAssignableFrom(type)) { var exportSettings = asset.CreateExportSettings <UTinyTextureSettings>(); ParseTextureSettings(exportSettings, exportSettingsDictionary); } else if (typeof(AudioClip).IsAssignableFrom(type)) { var exportSettings = asset.CreateExportSettings <UTinyAudioClipSettings>(); ParseBaseAssetExportSettings(exportSettings, exportSettingsDictionary); } else { var exportSettings = asset.CreateExportSettings <UTinyGenericAssetExportSettings>(); ParseBaseAssetExportSettings(exportSettings, exportSettingsDictionary); } } } } } } } // @LEGACY migrate legacy format IList <object> textureSettingsList; if (TryGetValue(dictionary, "TextureSettings", out textureSettingsList)) { foreach (IDictionary <string, object> textureSettingsDictionary in textureSettingsList) { var unityObject = ParseUnityObject(GetValue(textureSettingsDictionary, "Texture")) as Texture2D; var asset = module.GetAsset(unityObject) ?? module.AddAsset(unityObject); var exportSettings = asset.CreateExportSettings <UTinyTextureSettings>(); ParseTextureSettings(exportSettings, GetValue(textureSettingsDictionary, "Format")); } } module.StartupEntityGroup = ParseSceneReference(GetValue(dictionary, "StartupEntityGroup")); // @TEMP Backwards compat if (module.StartupEntityGroup.Equals(UTinyEntityGroup.Reference.None)) { module.StartupEntityGroup = ParseSceneReference(GetValue(dictionary, "StartupScene")); } }
public void SetUp() { m_Registry = new UTinyRegistry(); m_Module = m_Registry.CreateModule(UTinyId.New(), "TestModule"); }