public override void Search() { if (AssetBundleValidationCache.Count > 0) { return; } var contracts = ReflectionUtility.GetAllDerivedInstancesOfType <AssetBundlePathContract>(); foreach (var contract in contracts) { if (!_useTestContracts && contract.GetType().GetCustomAttributes(typeof(OnlyIncludeInTestsAttribute), true).Length > 0) { continue; } var dict = contract.GetPaths(); foreach (var kvp in dict) { if (AssetBundleValidationCache.ContainsKey(kvp.Key)) { // TODO Iterate through the existing bundle contents and add any bundle items not present } else { AssetBundleValidationCache.Add(kvp.Key, kvp.Value); } } } }
public CrossSceneValidatorCache() { var validators = ReflectionUtility.GetAllDerivedInstancesOfType <BaseCrossSceneValidator>().ToArray(); _validators = new List <BaseCrossSceneValidator>(); // Make sure any overriden disabled types are not included var overrideConfig = AssetValidatorOverrideConfig.FindOrCreate(); for (var index = 0; index < validators.Length; index++) { AssetValidatorOverrideConfig.OverrideItem item = null; var baseCrossSceneValidator = validators[index]; if (overrideConfig.TryGetOverrideConfigItem(baseCrossSceneValidator.GetType(), out item)) { if (item.enabled) { _validators.Add(baseCrossSceneValidator); } } else { _validators.Add(baseCrossSceneValidator); } } }
public void AssertReflectionUtilityCanDeriveAllNestedSubclasses() { var allReflectionDerivedSubclassesOfA = new List <A>(); allReflectionDerivedSubclassesOfA.AddRange(ReflectionUtility.GetAllDerivedInstancesOfType <A>()); Assert.AreEqual(3, allReflectionDerivedSubclassesOfA.Count); for (var i = 0; i < allSubclassesOfA.Count; i++) { Assert.IsTrue(allReflectionDerivedSubclassesOfA.Exists(x => x.GetType() == allSubclassesOfA[i].GetType())); } }
public InstanceValidatorCache() { _validators = new List <AbstractInstanceValidator>(); // Make sure any overriden disabled types are not included var overrideConfig = AssetValidatorOverrideConfig.FindOrCreate(); // Get and add all field validators, excluding override disabled ones. var fieldValidators = ReflectionUtility.GetAllDerivedInstancesOfType <BaseFieldValidator>().ToArray(); for (var index = 0; index < fieldValidators.Length; index++) { AssetValidatorOverrideConfig.OverrideItem item = null; var vFieldValidator = fieldValidators[index]; if (overrideConfig.TryGetOverrideConfigItem(vFieldValidator.GetType(), out item)) { if (item.enabled) { _validators.Add(vFieldValidator); } } else { _validators.Add(vFieldValidator); } } // Get and add all object validators, excluding override disabled ones. var objectValidators = ReflectionUtility.GetAllDerivedInstancesOfType <BaseObjectValidator>().ToArray(); for (var index = 0; index < objectValidators.Length; index++) { AssetValidatorOverrideConfig.OverrideItem item = null; var vObjectValidator = objectValidators[index]; if (overrideConfig.TryGetOverrideConfigItem(vObjectValidator.GetType(), out item)) { if (item.enabled) { _validators.Add(vObjectValidator); } } else { _validators.Add(vObjectValidator); } } }
public override void Search() { if (ResourcePaths.Count > 0) { return; } var contracts = ReflectionUtility.GetAllDerivedInstancesOfType <ResourcePathContract>(); foreach (var contract in contracts) { if (!_useTestContracts && contract.GetType().GetCustomAttributes(typeof(OnlyIncludeInTestsAttribute), true).Length > 0) { continue; } ResourcePaths.AddRange(contract.GetPaths()); } }
/// <summary> /// EnsureSetup will rerun the AddConvention initialization process to create the necessary folder /// desired by the project, tools, and frameworks reliant on it. /// </summary> public static void EnsureSetup() { // Initialize any root domain folders and paths if (!Directory.Exists(Path.Combine(COCUtility.GetUnityAssetRoot(), COCUtility.GAME_ASSET_ROOT))) { COCUtility.CreateGameRoot(); } var allCOCDomains = (COCDomain[])Enum.GetValues(typeof(COCDomain)); foreach (var cocDomain in allCOCDomains) { var relativeFolderPath = COCUtility.GetGamePath(cocDomain); var absoluteFolderPath = Path.Combine(COCUtility.GetUnityAssetRoot(), relativeFolderPath); if (!Directory.Exists(absoluteFolderPath)) { Directory.CreateDirectory(absoluteFolderPath); Debug.LogFormat("[COC] Folder created at \"{0}\"", absoluteFolderPath); } COCUtility.PreserveFolder(COCUtility.GetGamePath(cocDomain)); } // Set the scripting symbol for COC PlayerSettingsUtility.AddScriptingSymbolIfNotDefined(SCRIPTING_SYMBOL); // Search through the project for all derived classes of COCProviderBase // and add their conventions to the project var cocProviders = ReflectionUtility.GetAllDerivedInstancesOfType <COCProviderBase>(); foreach (var cocProvider in cocProviders) { cocProvider.AddConventions(); } AssetDatabase.Refresh(); }