Merge pull request #9346 from reaperrr/fix-silo-preview
Fixed silo placement preview
This commit is contained in:
@@ -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.")]
|
[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>
|
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 readonly int Stages = 10;
|
||||||
|
|
||||||
public object Create(ActorInitializer init) { return new WithSiloAnimation(init, this); }
|
public object Create(ActorInitializer init) { return new WithSiloAnimation(init, this); }
|
||||||
@@ -38,9 +42,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
public void BuildingComplete(Actor self)
|
public void BuildingComplete(Actor self)
|
||||||
{
|
{
|
||||||
var animation = wsb.NormalizeSequence(self, wsb.Info.Sequence);
|
wsb.DefaultAnimation.PlayFetchIndex(wsb.NormalizeSequence(self, info.Sequence),
|
||||||
|
|
||||||
wsb.DefaultAnimation.PlayFetchIndex(animation,
|
|
||||||
() => playerResources.ResourceCapacity != 0
|
() => playerResources.ResourceCapacity != 0
|
||||||
? ((info.Stages * wsb.DefaultAnimation.CurrentSequence.Length - 1) * playerResources.Resources) / (info.Stages * playerResources.ResourceCapacity)
|
? ((info.Stages * wsb.DefaultAnimation.CurrentSequence.Length - 1) * playerResources.Resources) / (info.Stages * playerResources.ResourceCapacity)
|
||||||
: 0);
|
: 0);
|
||||||
@@ -49,6 +51,11 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
|
public void OnOwnerChanged(Actor self, Player oldOwner, Player newOwner)
|
||||||
{
|
{
|
||||||
playerResources = newOwner.PlayerActor.Trait<PlayerResources>();
|
playerResources = newOwner.PlayerActor.Trait<PlayerResources>();
|
||||||
|
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2148,6 +2148,16 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
|||||||
node.Key = node.Key.Replace("-WithMuzzleFlash", "-WithMuzzleOverlay");
|
node.Key = node.Key.Replace("-WithMuzzleFlash", "-WithMuzzleOverlay");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WithSiloAnimation received own Sequence property, idle sequence is only 1 frame long now
|
||||||
|
if (engineVersion < 20150925)
|
||||||
|
{
|
||||||
|
if (depth == 2 && node.Key == "WithSiloAnimation")
|
||||||
|
{
|
||||||
|
Console.WriteLine("WithSiloAnimation received its own Sequence property, which defaults to 'stages'.");
|
||||||
|
Console.WriteLine("Update your sequences accordingly, if necessary.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,16 +78,21 @@ proc:
|
|||||||
|
|
||||||
silo:
|
silo:
|
||||||
idle:
|
idle:
|
||||||
Length: 5
|
|
||||||
Offset: 0,-1
|
Offset: 0,-1
|
||||||
damaged-idle:
|
damaged-idle:
|
||||||
Start: 5
|
Start: 5
|
||||||
Length: 5
|
|
||||||
Offset: 0,-1
|
Offset: 0,-1
|
||||||
dead:
|
dead:
|
||||||
Start: 10
|
Start: 10
|
||||||
Offset: 0,-1
|
Offset: 0,-1
|
||||||
Tick: 800
|
Tick: 800
|
||||||
|
stages:
|
||||||
|
Length: 5
|
||||||
|
Offset: 0,-1
|
||||||
|
damaged-stages:
|
||||||
|
Start: 5
|
||||||
|
Length: 5
|
||||||
|
Offset: 0,-1
|
||||||
make: silomake
|
make: silomake
|
||||||
Length: *
|
Length: *
|
||||||
Tick: 80
|
Tick: 80
|
||||||
|
|||||||
@@ -384,11 +384,17 @@ refinery.atreides:
|
|||||||
silo.atreides:
|
silo.atreides:
|
||||||
idle: DATA.R8
|
idle: DATA.R8
|
||||||
Start: 2566
|
Start: 2566
|
||||||
Length: 4
|
|
||||||
Offset: -16,16
|
Offset: -16,16
|
||||||
damaged-idle: DATA.R8
|
damaged-idle: DATA.R8
|
||||||
Start: 2569
|
Start: 2569
|
||||||
Offset: -16,16
|
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
|
make: DATA.R8
|
||||||
Start: 4313
|
Start: 4313
|
||||||
Length: 7
|
Length: 7
|
||||||
@@ -872,11 +878,17 @@ refinery.harkonnen:
|
|||||||
silo.harkonnen:
|
silo.harkonnen:
|
||||||
idle: DATA.R8
|
idle: DATA.R8
|
||||||
Start: 2726
|
Start: 2726
|
||||||
Length: 4
|
|
||||||
Offset: -16,16
|
Offset: -16,16
|
||||||
damaged-idle: DATA.R8
|
damaged-idle: DATA.R8
|
||||||
Start: 2730
|
Start: 2730
|
||||||
Offset: -16,16
|
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
|
make: DATA.R8
|
||||||
Start: 4313
|
Start: 4313
|
||||||
Length: 7
|
Length: 7
|
||||||
@@ -1269,11 +1281,17 @@ refinery.ordos:
|
|||||||
silo.ordos:
|
silo.ordos:
|
||||||
idle: DATA.R8
|
idle: DATA.R8
|
||||||
Start: 2886
|
Start: 2886
|
||||||
Length: 4
|
|
||||||
Offset: -16,16
|
Offset: -16,16
|
||||||
damaged-idle: DATA.R8
|
damaged-idle: DATA.R8
|
||||||
Start: 2890
|
Start: 2890
|
||||||
Offset: -16,16
|
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
|
make: DATA.R8
|
||||||
Start: 4313
|
Start: 4313
|
||||||
Length: 7
|
Length: 7
|
||||||
|
|||||||
@@ -94,9 +94,14 @@ proc:
|
|||||||
|
|
||||||
silo:
|
silo:
|
||||||
idle: silo2
|
idle: silo2
|
||||||
Length: 9
|
|
||||||
Offset: 0,-1
|
Offset: 0,-1
|
||||||
damaged-idle: silo2
|
damaged-idle: silo2
|
||||||
|
Start: 9
|
||||||
|
Offset: 0,-1
|
||||||
|
stages: silo2
|
||||||
|
Length: 9
|
||||||
|
Offset: 0,-1
|
||||||
|
damaged-stages: silo2
|
||||||
Start: 9
|
Start: 9
|
||||||
Length: 9
|
Length: 9
|
||||||
Offset: 0,-1
|
Offset: 0,-1
|
||||||
|
|||||||
@@ -973,9 +973,12 @@ gasilo.gdi:
|
|||||||
Offset: 0, -24
|
Offset: 0, -24
|
||||||
UseTilesetCode: true
|
UseTilesetCode: true
|
||||||
idle: gtsilo_a
|
idle: gtsilo_a
|
||||||
Length: 4
|
|
||||||
damaged-idle: gtsilo_a
|
damaged-idle: gtsilo_a
|
||||||
Start: 4
|
Start: 4
|
||||||
|
stages: gtsilo_a
|
||||||
|
Length: 4
|
||||||
|
damaged-stages: gtsilo_a
|
||||||
|
Start: 4
|
||||||
Length: 4
|
Length: 4
|
||||||
idle-underlay:
|
idle-underlay:
|
||||||
ShadowStart: 3
|
ShadowStart: 3
|
||||||
@@ -1008,9 +1011,12 @@ gasilo.nod:
|
|||||||
Offset: 0, -24
|
Offset: 0, -24
|
||||||
UseTilesetCode: true
|
UseTilesetCode: true
|
||||||
idle: gtsilo_a
|
idle: gtsilo_a
|
||||||
Length: 4
|
|
||||||
damaged-idle: gtsilo_a
|
damaged-idle: gtsilo_a
|
||||||
Start: 4
|
Start: 4
|
||||||
|
stages: gtsilo_a
|
||||||
|
Length: 4
|
||||||
|
damaged-stages: gtsilo_a
|
||||||
|
Start: 4
|
||||||
Length: 4
|
Length: 4
|
||||||
idle-underlay:
|
idle-underlay:
|
||||||
ShadowStart: 3
|
ShadowStart: 3
|
||||||
|
|||||||
Reference in New Issue
Block a user