void CollectPotentialConditions <T>(Dictionary <string, T> traitCollection, List <PotentialCondition> results, GameObject gameObject) { foreach (var trait in traitCollection) { var types = new List <Type>(); ConditionsAnalyzer.GetConditionTypesForTrait(trait.Key, types); foreach (var conditionType in types) { if (!conditionType.IsDefined(typeof(CreateFromDataOptions), true)) { continue; } var options = conditionType.GetAttribute <CreateFromDataOptions>(true); var potentialCondition = new PotentialCondition { componentType = conditionType, data = this, gameObjectOwner = gameObject, createdComponent = gameObject.GetComponent(conditionType), use = options.AddByDefault, order = options.Order }; potentialCondition.UpdateComponent(); results.Add(potentialCondition); } } }
static void CollectPotentialRelationsOfType <T>(Dictionary <string, T> collection, List <Type> resultTypes, int index) { foreach (var traitValue in collection) { var trait = traitValue.Key; switch (index) { case 0: ConditionsAnalyzer.GetRelationTypesForChild1Trait(trait, resultTypes); break; case 1: ConditionsAnalyzer.GetRelationTypesForChild2Trait(trait, resultTypes); break; } } }