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:
Paul Chote
2020-06-02 19:37:18 +01:00
committed by teinarss
parent 4df5ac0385
commit b38018af9c
28 changed files with 365 additions and 306 deletions

View File

@@ -33,10 +33,10 @@ namespace OpenRA.Mods.Common.Traits
public LegacyBridgeHut(ActorInitializer init, LegacyBridgeHutInfo info)
{
var bridge = init.GetOrDefault<ParentActorInit>(info);
var bridge = init.Get<ParentActorInit>(info).Value;
init.World.AddFrameEndTask(_ =>
{
Bridge = bridge.Value(init.World).Value.Trait<Bridge>();
Bridge = bridge.Actor(init.World).Value.Trait<Bridge>();
Bridge.AddHut(this);
FirstBridge = Bridge.Enumerate(0, true).Last();
});