Remove the crumble overlay after it has completed.

This commit is contained in:
Paul Chote
2014-07-08 17:11:59 +12:00
parent 2b91a2363b
commit c639339a62

View File

@@ -34,16 +34,19 @@ namespace OpenRA.Mods.RA.Render
public WithCrumbleOverlay(ActorInitializer init, WithCrumbleOverlayInfo info)
{
if (init.Contains<SkipMakeAnimsInit>())
return;
var key = "make_overlay_{0}".F(info.Sequence);
var rs = init.self.Trait<RenderSprites>();
if (!init.Contains<SkipMakeAnimsInit>())
{
var overlay = new Animation(init.world, rs.GetImage(init.self));
overlay.PlayThen(info.Sequence, () => buildComplete = false);
rs.Add("make_overlay_{0}".F(info.Sequence),
new AnimationWithOffset(overlay, null, () => !buildComplete),
info.Palette, info.IsPlayerPalette);
}
var overlay = new Animation(init.world, rs.GetImage(init.self));
// Remove the animation once it is complete
overlay.PlayThen(info.Sequence, () => init.world.AddFrameEndTask(w => rs.Remove(key)));
rs.Add(key, new AnimationWithOffset(overlay, null, () => !buildComplete),
info.Palette, info.IsPlayerPalette);
}
public void BuildingComplete(Actor self)