Replace IActorInit with an abstract class.
A shared ValueActorInit<T> is introduced to reduce duplication in the most common init cases, and an ActorInitActorReference allow actors to be referenced by map.yaml name.
This commit is contained in:
@@ -141,17 +141,13 @@ namespace OpenRA.Mods.Common.Traits
|
||||
|
||||
void ITransformActorInitModifier.ModifyTransformActorInit(Actor self, TypeDictionary init)
|
||||
{
|
||||
init.Add(new ExperienceInit(experience));
|
||||
init.Add(new ExperienceInit(info, experience));
|
||||
}
|
||||
}
|
||||
|
||||
class ExperienceInit : IActorInit<int>
|
||||
class ExperienceInit : ValueActorInit<int>
|
||||
{
|
||||
[FieldFromYamlKey]
|
||||
readonly int value;
|
||||
|
||||
public ExperienceInit() { }
|
||||
public ExperienceInit(int init) { value = init; }
|
||||
public int Value { get { return value; } }
|
||||
public ExperienceInit(TraitInfo info, int value)
|
||||
: base(info, value) { }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user