Add custom sequence support to WithSiloAnimation

Additionally add description to Stages property, and remove unnecessary var (information is only needed once anyway).
This commit is contained in:
reaperrr
2015-09-14 18:29:46 +02:00
parent e67bd7cffe
commit 522e7d5d04
5 changed files with 47 additions and 11 deletions

View File

@@ -18,6 +18,10 @@ namespace OpenRA.Mods.Common.Traits
[Desc("Render trait for buildings that change the sprite according to the remaining resource storage capacity across all depots.")]
class WithSiloAnimationInfo : ITraitInfo, Requires<WithSpriteBodyInfo>, Requires<RenderSpritesInfo>
{
[Desc("Sequence to use for resources-dependent 'stages'."), SequenceReference]
public readonly string Sequence = "stages";
[Desc("Internal resource stages. Does not have to match number of sequence frames.")]
public readonly int Stages = 10;
public object Create(ActorInitializer init) { return new WithSiloAnimation(init, this); }
@@ -38,9 +42,7 @@ namespace OpenRA.Mods.Common.Traits
public void BuildingComplete(Actor self)
{
var animation = wsb.NormalizeSequence(self, wsb.Info.Sequence);
wsb.DefaultAnimation.PlayFetchIndex(animation,
wsb.DefaultAnimation.PlayFetchIndex(wsb.NormalizeSequence(self, info.Sequence),
() => playerResources.ResourceCapacity != 0
? ((info.Stages * wsb.DefaultAnimation.CurrentSequence.Length - 1) * playerResources.Resources) / (info.Stages * playerResources.ResourceCapacity)
: 0);

View File

@@ -78,16 +78,21 @@ proc:
silo:
idle:
Length: 5
Offset: 0,-1
damaged-idle:
Start: 5
Length: 5
Offset: 0,-1
dead:
Start: 10
Offset: 0,-1
Tick: 800
stages:
Length: 5
Offset: 0,-1
damaged-stages:
Start: 5
Length: 5
Offset: 0,-1
make: silomake
Length: *
Tick: 80

View File

@@ -384,11 +384,17 @@ refinery.atreides:
silo.atreides:
idle: DATA.R8
Start: 2566
Length: 4
Offset: -16,16
damaged-idle: DATA.R8
Start: 2569
Offset: -16,16
stages: DATA.R8
Start: 2566
Length: 4
Offset: -16,16
damaged-stages: DATA.R8
Start: 2569
Offset: -16,16
make: DATA.R8
Start: 4313
Length: 7
@@ -872,11 +878,17 @@ refinery.harkonnen:
silo.harkonnen:
idle: DATA.R8
Start: 2726
Length: 4
Offset: -16,16
damaged-idle: DATA.R8
Start: 2730
Offset: -16,16
stages: DATA.R8
Start: 2726
Length: 4
Offset: -16,16
damaged-stages: DATA.R8
Start: 2730
Offset: -16,16
make: DATA.R8
Start: 4313
Length: 7
@@ -1269,11 +1281,17 @@ refinery.ordos:
silo.ordos:
idle: DATA.R8
Start: 2886
Length: 4
Offset: -16,16
damaged-idle: DATA.R8
Start: 2890
Offset: -16,16
stages: DATA.R8
Start: 2886
Length: 4
Offset: -16,16
damaged-stages: DATA.R8
Start: 2890
Offset: -16,16
make: DATA.R8
Start: 4313
Length: 7

View File

@@ -94,9 +94,14 @@ proc:
silo:
idle: silo2
Length: 9
Offset: 0,-1
damaged-idle: silo2
Start: 9
Offset: 0,-1
stages: silo2
Length: 9
Offset: 0,-1
damaged-stages: silo2
Start: 9
Length: 9
Offset: 0,-1

View File

@@ -973,9 +973,12 @@ gasilo.gdi:
Offset: 0, -24
UseTilesetCode: true
idle: gtsilo_a
Length: 4
damaged-idle: gtsilo_a
Start: 4
stages: gtsilo_a
Length: 4
damaged-stages: gtsilo_a
Start: 4
Length: 4
idle-underlay:
ShadowStart: 3
@@ -1008,9 +1011,12 @@ gasilo.nod:
Offset: 0, -24
UseTilesetCode: true
idle: gtsilo_a
Length: 4
damaged-idle: gtsilo_a
Start: 4
stages: gtsilo_a
Length: 4
damaged-stages: gtsilo_a
Start: 4
Length: 4
idle-underlay:
ShadowStart: 3