Add IEnumerable<ITraitInfo> ActorInfo.TraitInfos() replacing actorInfo.traits enumeration

This commit is contained in:
atlimit8
2015-09-19 12:25:21 -05:00
parent bbdd597917
commit b38b6eadd0
4 changed files with 8 additions and 7 deletions

View File

@@ -187,5 +187,6 @@ namespace OpenRA
public bool HasTraitInfo<T>() where T : ITraitInfo { return Traits.Contains<T>(); } public bool HasTraitInfo<T>() where T : ITraitInfo { return Traits.Contains<T>(); }
public T TraitInfo<T>() where T : ITraitInfo { return Traits.Get<T>(); } public T TraitInfo<T>() where T : ITraitInfo { return Traits.Get<T>(); }
public T TraitInfoOrDefault<T>() where T : ITraitInfo { return Traits.GetOrDefault<T>(); } public T TraitInfoOrDefault<T>() where T : ITraitInfo { return Traits.GetOrDefault<T>(); }
public IEnumerable<T> TraitInfos<T>() where T : ITraitInfo { return Traits.WithInterface<T>(); }
} }
} }

View File

@@ -24,7 +24,7 @@ namespace OpenRA.Mods.Common.Lint
foreach (var actorInfo in rules.Actors) foreach (var actorInfo in rules.Actors)
{ {
foreach (var traitInfo in actorInfo.Value.Traits) foreach (var traitInfo in actorInfo.Value.TraitInfos<ITraitInfo>())
{ {
var fields = traitInfo.GetType().GetFields(); var fields = traitInfo.GetType().GetFields();
foreach (var field in fields.Where(x => x.HasAttribute<PaletteReferenceAttribute>())) foreach (var field in fields.Where(x => x.HasAttribute<PaletteReferenceAttribute>()))
@@ -70,7 +70,7 @@ namespace OpenRA.Mods.Common.Lint
{ {
foreach (var actorInfo in rules.Actors) foreach (var actorInfo in rules.Actors)
{ {
foreach (var traitInfo in actorInfo.Value.Traits) foreach (var traitInfo in actorInfo.Value.TraitInfos<ITraitInfo>())
{ {
var fields = traitInfo.GetType().GetFields(); var fields = traitInfo.GetType().GetFields();
foreach (var field in fields.Where(x => x.HasAttribute<PaletteDefinitionAttribute>())) foreach (var field in fields.Where(x => x.HasAttribute<PaletteDefinitionAttribute>()))

View File

@@ -55,7 +55,7 @@ namespace OpenRA.Mods.Common.Lint
} }
} }
foreach (var traitInfo in actorInfo.Value.Traits.WithInterface<ITraitInfo>()) foreach (var traitInfo in actorInfo.Value.TraitInfos<ITraitInfo>())
{ {
var fields = traitInfo.GetType().GetFields(); var fields = traitInfo.GetType().GetFields();
foreach (var field in fields) foreach (var field in fields)

View File

@@ -30,7 +30,7 @@ namespace OpenRA.Mods.Common.Lint
foreach (var actorInfo in rules.Actors) foreach (var actorInfo in rules.Actors)
{ {
foreach (var trait in actorInfo.Value.Traits) foreach (var trait in actorInfo.Value.TraitInfos<ITraitInfo>())
{ {
var fields = trait.GetType().GetFields(); var fields = trait.GetType().GetFields();
foreach (var field in fields.Where(x => x.HasAttribute<UpgradeUsedReferenceAttribute>())) foreach (var field in fields.Where(x => x.HasAttribute<UpgradeUsedReferenceAttribute>()))
@@ -50,7 +50,7 @@ namespace OpenRA.Mods.Common.Lint
// Check all upgrades granted by traits. // Check all upgrades granted by traits.
foreach (var actorInfo in rules.Actors) foreach (var actorInfo in rules.Actors)
{ {
foreach (var trait in actorInfo.Value.Traits) foreach (var trait in actorInfo.Value.TraitInfos<ITraitInfo>())
{ {
var fields = trait.GetType().GetFields(); var fields = trait.GetType().GetFields();
foreach (var field in fields.Where(x => x.HasAttribute<UpgradeGrantedReferenceAttribute>())) foreach (var field in fields.Where(x => x.HasAttribute<UpgradeGrantedReferenceAttribute>()))
@@ -83,7 +83,7 @@ namespace OpenRA.Mods.Common.Lint
// Get all upgrades granted by traits. // Get all upgrades granted by traits.
foreach (var actorInfo in rules.Actors) foreach (var actorInfo in rules.Actors)
{ {
foreach (var trait in actorInfo.Value.Traits) foreach (var trait in actorInfo.Value.TraitInfos<ITraitInfo>())
{ {
var fields = trait.GetType().GetFields(); var fields = trait.GetType().GetFields();
foreach (var field in fields.Where(x => x.HasAttribute<UpgradeGrantedReferenceAttribute>())) foreach (var field in fields.Where(x => x.HasAttribute<UpgradeGrantedReferenceAttribute>()))
@@ -129,7 +129,7 @@ namespace OpenRA.Mods.Common.Lint
{ {
foreach (var actorInfo in rules.Actors) foreach (var actorInfo in rules.Actors)
{ {
foreach (var trait in actorInfo.Value.Traits) foreach (var trait in actorInfo.Value.TraitInfos<ITraitInfo>())
{ {
var fields = trait.GetType().GetFields(); var fields = trait.GetType().GetFields();
foreach (var field in fields.Where(x => x.HasAttribute<UpgradeUsedReferenceAttribute>())) foreach (var field in fields.Where(x => x.HasAttribute<UpgradeUsedReferenceAttribute>()))