Merge pull request #8725 from reaperrr/bye-rendersimple-pr1

Step towards removing RenderSimple and its derivatives (Part 1)
This commit is contained in:
Pavel Penev
2015-07-25 18:43:13 +03:00
13 changed files with 104 additions and 41 deletions

View File

@@ -14,15 +14,15 @@ using OpenRA.Graphics;
namespace OpenRA.Mods.Common.Traits
{
[Desc("Invisible during games.")]
class RenderEditorOnlyInfo : RenderSimpleInfo
class RenderSpritesEditorOnlyInfo : RenderSpritesInfo
{
public override object Create(ActorInitializer init) { return new RenderEditorOnly(init, this); }
public override object Create(ActorInitializer init) { return new RenderSpritesEditorOnly(init, this); }
}
class RenderEditorOnly : RenderSimple
class RenderSpritesEditorOnly : RenderSprites
{
public RenderEditorOnly(ActorInitializer init, RenderEditorOnlyInfo info)
: base(init, info, () => 0) { }
public RenderSpritesEditorOnly(ActorInitializer init, RenderSpritesEditorOnlyInfo info)
: base(init, info) { }
public override IEnumerable<IRenderable> Render(Actor self, WorldRenderer wr) { return SpriteRenderable.None; }
}

View File

@@ -52,19 +52,20 @@ namespace OpenRA.Mods.Common.Traits
public void Tick(Actor self)
{
if (!IsModifying && !string.IsNullOrEmpty(wsb.Info.Sequence) && wsb.DefaultAnimation.HasSequence(NormalizeHarvesterSequence(self, wsb.Info.Sequence)))
{
if (wsb.DefaultAnimation.CurrentSequence.Name != NormalizeHarvesterSequence(self, wsb.Info.Sequence))
wsb.DefaultAnimation.ReplaceAnim(NormalizeHarvesterSequence(self, wsb.Info.Sequence));
}
var baseSequence = wsb.NormalizeSequence(self, wsb.Info.Sequence);
var sequence = NormalizeHarvesterSequence(self, baseSequence);
if (!IsModifying && wsb.DefaultAnimation.HasSequence(sequence) && wsb.DefaultAnimation.CurrentSequence.Name != sequence)
wsb.DefaultAnimation.ReplaceAnim(sequence);
}
public void Harvested(Actor self, ResourceType resource)
{
if (!IsModifying && !string.IsNullOrEmpty(Info.HarvestSequence) && wsb.DefaultAnimation.HasSequence(NormalizeHarvesterSequence(self, Info.HarvestSequence)))
var baseSequence = wsb.NormalizeSequence(self, Info.HarvestSequence);
var sequence = NormalizeHarvesterSequence(self, baseSequence);
if (!IsModifying && wsb.DefaultAnimation.HasSequence(sequence))
{
IsModifying = true;
wsb.PlayCustomAnimation(self, NormalizeHarvesterSequence(self, Info.HarvestSequence), () => IsModifying = false);
wsb.PlayCustomAnimation(self, sequence, () => IsModifying = false);
}
}

View File

@@ -81,8 +81,8 @@ namespace OpenRA.Mods.Common.Traits
public void PlayCustomAnimationRepeating(Actor self, string name)
{
DefaultAnimation.PlayThen(name,
() => PlayCustomAnimationRepeating(self, name));
var sequence = NormalizeSequence(self, name);
DefaultAnimation.PlayThen(sequence, () => PlayCustomAnimationRepeating(self, sequence));
}
public void PlayCustomAnimationBackwards(Actor self, string name, Action after = null)