Access sequences from Map.
This commit is contained in:
@@ -22,7 +22,7 @@ namespace OpenRA.Graphics
|
|||||||
public string Name { get; private set; }
|
public string Name { get; private set; }
|
||||||
public bool IsDecoration { get; set; }
|
public bool IsDecoration { get; set; }
|
||||||
|
|
||||||
readonly SequenceProvider sequenceProvider;
|
readonly SequenceProvider sequences;
|
||||||
readonly Func<WAngle> facingFunc;
|
readonly Func<WAngle> facingFunc;
|
||||||
readonly Func<bool> paused;
|
readonly Func<bool> paused;
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ namespace OpenRA.Graphics
|
|||||||
|
|
||||||
public Animation(World world, string name, Func<WAngle> facingFunc, Func<bool> paused)
|
public Animation(World world, string name, Func<WAngle> facingFunc, Func<bool> paused)
|
||||||
{
|
{
|
||||||
sequenceProvider = world.Map.Rules.Sequences;
|
sequences = world.Map.Sequences;
|
||||||
Name = name.ToLowerInvariant();
|
Name = name.ToLowerInvariant();
|
||||||
this.facingFunc = facingFunc;
|
this.facingFunc = facingFunc;
|
||||||
this.paused = paused;
|
this.paused = paused;
|
||||||
@@ -236,11 +236,11 @@ namespace OpenRA.Graphics
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool HasSequence(string seq) { return sequenceProvider.HasSequence(Name, seq); }
|
public bool HasSequence(string seq) { return sequences.HasSequence(Name, seq); }
|
||||||
|
|
||||||
public ISpriteSequence GetSequence(string sequenceName)
|
public ISpriteSequence GetSequence(string sequenceName)
|
||||||
{
|
{
|
||||||
return sequenceProvider.GetSequence(Name, sequenceName);
|
return sequences.GetSequence(Name, sequenceName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetRandomExistingSequence(string[] sequences, MersenneTwister random)
|
public string GetRandomExistingSequence(string[] sequences, MersenneTwister random)
|
||||||
|
|||||||
@@ -218,6 +218,8 @@ namespace OpenRA
|
|||||||
public string Uid { get; private set; }
|
public string Uid { get; private set; }
|
||||||
|
|
||||||
public Ruleset Rules { get; private set; }
|
public Ruleset Rules { get; private set; }
|
||||||
|
public SequenceProvider Sequences => Rules.Sequences;
|
||||||
|
|
||||||
public bool InvalidCustomRules { get; private set; }
|
public bool InvalidCustomRules { get; private set; }
|
||||||
public Exception InvalidCustomRulesException { get; private set; }
|
public Exception InvalidCustomRulesException { get; private set; }
|
||||||
|
|
||||||
|
|||||||
@@ -93,8 +93,8 @@ namespace OpenRA.Mods.Cnc.Graphics
|
|||||||
|
|
||||||
public IEnumerable<IFinalizedRenderable> GenerateRenderables(WorldRenderer wr)
|
public IEnumerable<IFinalizedRenderable> GenerateRenderables(WorldRenderer wr)
|
||||||
{
|
{
|
||||||
var bright = wr.World.Map.Rules.Sequences.GetSequence(image, brightSequence);
|
var bright = wr.World.Map.Sequences.GetSequence(image, brightSequence);
|
||||||
var dim = wr.World.Map.Rules.Sequences.GetSequence(image, dimSequence);
|
var dim = wr.World.Map.Sequences.GetSequence(image, dimSequence);
|
||||||
|
|
||||||
var source = wr.ScreenPosition(pos);
|
var source = wr.ScreenPosition(pos);
|
||||||
var target = wr.ScreenPosition(pos + length);
|
var target = wr.ScreenPosition(pos + length);
|
||||||
|
|||||||
@@ -83,10 +83,11 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
this.self = self;
|
this.self = self;
|
||||||
|
|
||||||
var tileset = self.World.Map.Tileset.ToLowerInvariant();
|
var tileset = self.World.Map.Tileset.ToLowerInvariant();
|
||||||
if (self.World.Map.Rules.Sequences.HasSequence("overlay", $"{Info.TileValidName}-{tileset}"))
|
var sequences = self.World.Map.Sequences;
|
||||||
Tile = self.World.Map.Rules.Sequences.GetSequence("overlay", $"{Info.TileValidName}-{tileset}").GetSprite(0);
|
if (sequences.HasSequence("overlay", $"{Info.TileValidName}-{tileset}"))
|
||||||
|
Tile = sequences.GetSequence("overlay", $"{Info.TileValidName}-{tileset}").GetSprite(0);
|
||||||
else
|
else
|
||||||
Tile = self.World.Map.Rules.Sequences.GetSequence("overlay", Info.TileValidName).GetSprite(0);
|
Tile = sequences.GetSequence("overlay", Info.TileValidName).GetSprite(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerable<IOrderTargeter> IIssueOrder.Orders
|
IEnumerable<IOrderTargeter> IIssueOrder.Orders
|
||||||
@@ -221,41 +222,42 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
|
|
||||||
minelayer = a.Trait<Minelayer>();
|
minelayer = a.Trait<Minelayer>();
|
||||||
var tileset = a.World.Map.Tileset.ToLowerInvariant();
|
var tileset = a.World.Map.Tileset.ToLowerInvariant();
|
||||||
if (a.World.Map.Rules.Sequences.HasSequence("overlay", $"{minelayer.Info.TileValidName}-{tileset}"))
|
var sequences = a.World.Map.Sequences;
|
||||||
|
if (sequences.HasSequence("overlay", $"{minelayer.Info.TileValidName}-{tileset}"))
|
||||||
{
|
{
|
||||||
var validSequence = a.World.Map.Rules.Sequences.GetSequence("overlay", $"{minelayer.Info.TileValidName}-{tileset}");
|
var validSequence = sequences.GetSequence("overlay", $"{minelayer.Info.TileValidName}-{tileset}");
|
||||||
validTile = validSequence.GetSprite(0);
|
validTile = validSequence.GetSprite(0);
|
||||||
validAlpha = validSequence.GetAlpha(0);
|
validAlpha = validSequence.GetAlpha(0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var validSequence = a.World.Map.Rules.Sequences.GetSequence("overlay", minelayer.Info.TileValidName);
|
var validSequence = sequences.GetSequence("overlay", minelayer.Info.TileValidName);
|
||||||
validTile = validSequence.GetSprite(0);
|
validTile = validSequence.GetSprite(0);
|
||||||
validAlpha = validSequence.GetAlpha(0);
|
validAlpha = validSequence.GetAlpha(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (a.World.Map.Rules.Sequences.HasSequence("overlay", $"{minelayer.Info.TileUnknownName}-{tileset}"))
|
if (sequences.HasSequence("overlay", $"{minelayer.Info.TileUnknownName}-{tileset}"))
|
||||||
{
|
{
|
||||||
var unknownSequence = a.World.Map.Rules.Sequences.GetSequence("overlay", $"{minelayer.Info.TileUnknownName}-{tileset}");
|
var unknownSequence = sequences.GetSequence("overlay", $"{minelayer.Info.TileUnknownName}-{tileset}");
|
||||||
unknownTile = unknownSequence.GetSprite(0);
|
unknownTile = unknownSequence.GetSprite(0);
|
||||||
unknownAlpha = unknownSequence.GetAlpha(0);
|
unknownAlpha = unknownSequence.GetAlpha(0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var unknownSequence = a.World.Map.Rules.Sequences.GetSequence("overlay", minelayer.Info.TileUnknownName);
|
var unknownSequence = sequences.GetSequence("overlay", minelayer.Info.TileUnknownName);
|
||||||
unknownTile = unknownSequence.GetSprite(0);
|
unknownTile = unknownSequence.GetSprite(0);
|
||||||
unknownAlpha = unknownSequence.GetAlpha(0);
|
unknownAlpha = unknownSequence.GetAlpha(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (a.World.Map.Rules.Sequences.HasSequence("overlay", $"{minelayer.Info.TileInvalidName}-{tileset}"))
|
if (sequences.HasSequence("overlay", $"{minelayer.Info.TileInvalidName}-{tileset}"))
|
||||||
{
|
{
|
||||||
var blockedSequence = a.World.Map.Rules.Sequences.GetSequence("overlay", $"{minelayer.Info.TileInvalidName}-{tileset}");
|
var blockedSequence = sequences.GetSequence("overlay", $"{minelayer.Info.TileInvalidName}-{tileset}");
|
||||||
blockedTile = blockedSequence.GetSprite(0);
|
blockedTile = blockedSequence.GetSprite(0);
|
||||||
blockedAlpha = blockedSequence.GetAlpha(0);
|
blockedAlpha = blockedSequence.GetAlpha(0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var blockedSequence = a.World.Map.Rules.Sequences.GetSequence("overlay", minelayer.Info.TileInvalidName);
|
var blockedSequence = sequences.GetSequence("overlay", minelayer.Info.TileInvalidName);
|
||||||
blockedTile = blockedSequence.GetSprite(0);
|
blockedTile = blockedSequence.GetSprite(0);
|
||||||
blockedAlpha = blockedSequence.GetAlpha(0);
|
blockedAlpha = blockedSequence.GetAlpha(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
this.power = power;
|
this.power = power;
|
||||||
|
|
||||||
var info = (ChronoshiftPowerInfo)power.Info;
|
var info = (ChronoshiftPowerInfo)power.Info;
|
||||||
var s = world.Map.Rules.Sequences.GetSequence(info.FootprintImage, info.SourceFootprintSequence);
|
var s = world.Map.Sequences.GetSequence(info.FootprintImage, info.SourceFootprintSequence);
|
||||||
footprint = info.Footprint.Where(c => !char.IsWhiteSpace(c)).ToArray();
|
footprint = info.Footprint.Where(c => !char.IsWhiteSpace(c)).ToArray();
|
||||||
dimensions = info.Dimensions;
|
dimensions = info.Dimensions;
|
||||||
tile = s.GetSprite(0);
|
tile = s.GetSprite(0);
|
||||||
@@ -240,7 +240,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
footprint = info.Footprint.Where(c => !char.IsWhiteSpace(c)).ToArray();
|
footprint = info.Footprint.Where(c => !char.IsWhiteSpace(c)).ToArray();
|
||||||
dimensions = info.Dimensions;
|
dimensions = info.Dimensions;
|
||||||
|
|
||||||
var sequences = world.Map.Rules.Sequences;
|
var sequences = world.Map.Sequences;
|
||||||
var tilesetValid = info.ValidFootprintSequence + "-" + world.Map.Tileset.ToLowerInvariant();
|
var tilesetValid = info.ValidFootprintSequence + "-" + world.Map.Tileset.ToLowerInvariant();
|
||||||
if (sequences.HasSequence(info.FootprintImage, tilesetValid))
|
if (sequences.HasSequence(info.FootprintImage, tilesetValid))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
|
|
||||||
void LoadVariants(Dictionary<string, string[]> rampSequences, Dictionary<string, Dictionary<string, ISpriteSequence>> rampVariants)
|
void LoadVariants(Dictionary<string, string[]> rampSequences, Dictionary<string, Dictionary<string, ISpriteSequence>> rampVariants)
|
||||||
{
|
{
|
||||||
var sequences = world.Map.Rules.Sequences;
|
var sequences = world.Map.Sequences;
|
||||||
foreach (var kv in rampSequences)
|
foreach (var kv in rampSequences)
|
||||||
{
|
{
|
||||||
if (!Info.ResourceTypes.TryGetValue(kv.Key, out var resourceInfo))
|
if (!Info.ResourceTypes.TryGetValue(kv.Key, out var resourceInfo))
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ namespace OpenRA.Mods.Cnc.Traits
|
|||||||
foreach (var a in w.Actors)
|
foreach (var a in w.Actors)
|
||||||
ActorAddedToWorld(a);
|
ActorAddedToWorld(a);
|
||||||
|
|
||||||
veinSequence = w.Map.Rules.Sequences.GetSequence(info.Image, info.Sequence);
|
veinSequence = w.Map.Sequences.GetSequence(info.Image, info.Sequence);
|
||||||
veinPalette = wr.Palette(info.Palette);
|
veinPalette = wr.Palette(info.Palette);
|
||||||
|
|
||||||
var first = veinSequence.GetSprite(0);
|
var first = veinSequence.GetSprite(0);
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
throw new InvalidOperationException("Actor type '" + self.Info.Name + "' does not define a quantized body orientation.");
|
throw new InvalidOperationException("Actor type '" + self.Info.Name + "' does not define a quantized body orientation.");
|
||||||
}
|
}
|
||||||
|
|
||||||
return qboi.QuantizedBodyFacings(self.Info, self.World.Map.Rules.Sequences, faction);
|
return qboi.QuantizedBodyFacings(self.Info, self.World.Map.Sequences, faction);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,20 +65,21 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
topLeftScreenOffset = -wr.ScreenPxOffset(CenterOffset);
|
topLeftScreenOffset = -wr.ScreenPxOffset(CenterOffset);
|
||||||
|
|
||||||
var tileset = world.Map.Tileset.ToLowerInvariant();
|
var tileset = world.Map.Tileset.ToLowerInvariant();
|
||||||
if (world.Map.Rules.Sequences.HasSequence("overlay", $"build-valid-{tileset}"))
|
var sequences = world.Map.Sequences;
|
||||||
|
if (sequences.HasSequence("overlay", $"build-valid-{tileset}"))
|
||||||
{
|
{
|
||||||
var validSequence = world.Map.Rules.Sequences.GetSequence("overlay", $"build-valid-{tileset}");
|
var validSequence = sequences.GetSequence("overlay", $"build-valid-{tileset}");
|
||||||
validTile = validSequence.GetSprite(0);
|
validTile = validSequence.GetSprite(0);
|
||||||
validAlpha = validSequence.GetAlpha(0);
|
validAlpha = validSequence.GetAlpha(0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var validSequence = world.Map.Rules.Sequences.GetSequence("overlay", "build-valid");
|
var validSequence = sequences.GetSequence("overlay", "build-valid");
|
||||||
validTile = validSequence.GetSprite(0);
|
validTile = validSequence.GetSprite(0);
|
||||||
validAlpha = validSequence.GetAlpha(0);
|
validAlpha = validSequence.GetAlpha(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
var blockedSequence = world.Map.Rules.Sequences.GetSequence("overlay", "build-invalid");
|
var blockedSequence = sequences.GetSequence("overlay", "build-invalid");
|
||||||
blockedTile = blockedSequence.GetSprite(0);
|
blockedTile = blockedSequence.GetSprite(0);
|
||||||
blockedAlpha = blockedSequence.GetAlpha(0);
|
blockedAlpha = blockedSequence.GetAlpha(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ namespace OpenRA.Mods.Common.Traits.Render
|
|||||||
|
|
||||||
public IEnumerable<IActorPreview> RenderPreview(ActorPreviewInitializer init)
|
public IEnumerable<IActorPreview> RenderPreview(ActorPreviewInitializer init)
|
||||||
{
|
{
|
||||||
var sequenceProvider = init.World.Map.Rules.Sequences;
|
var sequences = init.World.Map.Sequences;
|
||||||
var faction = init.GetValue<FactionInit, string>(this);
|
var faction = init.GetValue<FactionInit, string>(this);
|
||||||
var ownerName = init.Get<OwnerInit>().InternalName;
|
var ownerName = init.Get<OwnerInit>().InternalName;
|
||||||
var image = GetImage(init.Actor, faction);
|
var image = GetImage(init.Actor, faction);
|
||||||
@@ -60,7 +60,7 @@ namespace OpenRA.Mods.Common.Traits.Render
|
|||||||
if (facings == -1)
|
if (facings == -1)
|
||||||
{
|
{
|
||||||
var qbo = init.Actor.TraitInfoOrDefault<IQuantizeBodyOrientationInfo>();
|
var qbo = init.Actor.TraitInfoOrDefault<IQuantizeBodyOrientationInfo>();
|
||||||
facings = qbo?.QuantizedBodyFacings(init.Actor, sequenceProvider, faction) ?? 1;
|
facings = qbo?.QuantizedBodyFacings(init.Actor, sequences, faction) ?? 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,10 +59,10 @@ namespace OpenRA.Mods.Common.Traits.Render
|
|||||||
var body = init.Actor.TraitInfo<BodyOrientationInfo>();
|
var body = init.Actor.TraitInfo<BodyOrientationInfo>();
|
||||||
var faction = init.GetValue<FactionInit, string>(this);
|
var faction = init.GetValue<FactionInit, string>(this);
|
||||||
var ownerName = init.Get<OwnerInit>().InternalName;
|
var ownerName = init.Get<OwnerInit>().InternalName;
|
||||||
var sequenceProvider = init.World.Map.Rules.Sequences;
|
var sequences = init.World.Map.Sequences;
|
||||||
var image = Image ?? init.Actor.Name;
|
var image = Image ?? init.Actor.Name;
|
||||||
var facings = body.QuantizedFacings == -1 ?
|
var facings = body.QuantizedFacings == -1 ?
|
||||||
init.Actor.TraitInfo<IQuantizeBodyOrientationInfo>().QuantizedBodyFacings(init.Actor, sequenceProvider, faction) :
|
init.Actor.TraitInfo<IQuantizeBodyOrientationInfo>().QuantizedBodyFacings(init.Actor, sequences, faction) :
|
||||||
body.QuantizedFacings;
|
body.QuantizedFacings;
|
||||||
var palette = init.WorldRenderer.Palette(Palette ?? PlayerPalette + ownerName);
|
var palette = init.WorldRenderer.Palette(Palette ?? PlayerPalette + ownerName);
|
||||||
|
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
footprint = power.info.Footprint.Where(c => !char.IsWhiteSpace(c)).ToArray();
|
footprint = power.info.Footprint.Where(c => !char.IsWhiteSpace(c)).ToArray();
|
||||||
dimensions = power.info.Dimensions;
|
dimensions = power.info.Dimensions;
|
||||||
|
|
||||||
var sequence = world.Map.Rules.Sequences.GetSequence(power.info.FootprintImage, power.info.FootprintSequence);
|
var sequence = world.Map.Sequences.GetSequence(power.info.FootprintImage, power.info.FootprintSequence);
|
||||||
tile = sequence.GetSprite(0);
|
tile = sequence.GetSprite(0);
|
||||||
alpha = sequence.GetAlpha(0);
|
alpha = sequence.GetAlpha(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
for (var i = 0; i < noOfDividingPoints; i++)
|
for (var i = 0; i < noOfDividingPoints; i++)
|
||||||
{
|
{
|
||||||
var sprite = world.Map.Rules.Sequences.GetSequence(cursorAnimation, arrows[i]).GetSprite(0);
|
var sprite = world.Map.Sequences.GetSequence(cursorAnimation, arrows[i]).GetSprite(0);
|
||||||
|
|
||||||
var angle = i * partAngle;
|
var angle = i * partAngle;
|
||||||
var direction = WAngle.FromDegrees(angle);
|
var direction = WAngle.FromDegrees(angle);
|
||||||
|
|||||||
@@ -59,8 +59,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
this.info = info;
|
this.info = info;
|
||||||
world = self.World;
|
world = self.World;
|
||||||
|
|
||||||
var rules = self.World.Map.Rules;
|
disabledSprite = self.World.Map.Sequences.GetSequence(info.Image, info.Sequence).GetSprite(0);
|
||||||
disabledSprite = rules.Sequences.GetSequence(info.Image, info.Sequence).GetSprite(0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void IWorldLoaded.WorldLoaded(World w, WorldRenderer wr)
|
void IWorldLoaded.WorldLoaded(World w, WorldRenderer wr)
|
||||||
|
|||||||
@@ -59,11 +59,11 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
this.info = info;
|
this.info = info;
|
||||||
map = self.World.Map;
|
map = self.World.Map;
|
||||||
|
|
||||||
var copySequence = map.Rules.Sequences.GetSequence(info.Image, info.CopySequence);
|
var copySequence = map.Sequences.GetSequence(info.Image, info.CopySequence);
|
||||||
copyTile = copySequence.GetSprite(0);
|
copyTile = copySequence.GetSprite(0);
|
||||||
copyAlpha = copySequence.GetAlpha(0);
|
copyAlpha = copySequence.GetAlpha(0);
|
||||||
|
|
||||||
var pasteSequence = map.Rules.Sequences.GetSequence(info.Image, info.PasteSequence);
|
var pasteSequence = map.Sequences.GetSequence(info.Image, info.PasteSequence);
|
||||||
pasteTile = pasteSequence.GetSprite(0);
|
pasteTile = pasteSequence.GetSprite(0);
|
||||||
pasteAlpha = pasteSequence.GetAlpha(0);
|
pasteAlpha = pasteSequence.GetAlpha(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
protected virtual void WorldLoaded(World w, WorldRenderer wr)
|
protected virtual void WorldLoaded(World w, WorldRenderer wr)
|
||||||
{
|
{
|
||||||
var sequences = w.Map.Rules.Sequences;
|
var sequences = w.Map.Sequences;
|
||||||
foreach (var kv in Info.ResourceTypes)
|
foreach (var kv in Info.ResourceTypes)
|
||||||
{
|
{
|
||||||
var resourceInfo = kv.Value;
|
var resourceInfo = kv.Value;
|
||||||
@@ -141,12 +141,13 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
|
|
||||||
if (shadowLayer == null)
|
if (shadowLayer == null)
|
||||||
{
|
{
|
||||||
var firstWithShadow = resourceVariants.Values.FirstOrDefault(v => v.ShadowStart > 0);
|
var firstShadow = resourceVariants.Values
|
||||||
if (firstWithShadow != null)
|
.Select(v => v.GetShadow(0, WAngle.Zero))
|
||||||
|
.FirstOrDefault(s => s != null);
|
||||||
|
if (firstShadow != null)
|
||||||
{
|
{
|
||||||
var first = firstWithShadow.GetShadow(0, WAngle.Zero);
|
var emptySprite = new Sprite(firstShadow.Sheet, Rectangle.Empty, TextureChannel.Alpha);
|
||||||
var emptySprite = new Sprite(first.Sheet, Rectangle.Empty, TextureChannel.Alpha);
|
shadowLayer = new TerrainSpriteLayer(w, wr, emptySprite, firstShadow.BlendMode, wr.World.Type != WorldType.Editor);
|
||||||
shadowLayer = new TerrainSpriteLayer(w, wr, emptySprite, first.BlendMode, wr.World.Type != WorldType.Editor);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -156,11 +156,11 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
shroudSprites = new (Sprite, float, float)[variantCount * variantStride];
|
shroudSprites = new (Sprite, float, float)[variantCount * variantStride];
|
||||||
fogSprites = new (Sprite, float, float)[variantCount * variantStride];
|
fogSprites = new (Sprite, float, float)[variantCount * variantStride];
|
||||||
|
|
||||||
var sequenceProvider = map.Rules.Sequences;
|
var sequences = map.Sequences;
|
||||||
for (var j = 0; j < variantCount; j++)
|
for (var j = 0; j < variantCount; j++)
|
||||||
{
|
{
|
||||||
var shroudSequence = sequenceProvider.GetSequence(info.Sequence, info.ShroudVariants[j]);
|
var shroudSequence = sequences.GetSequence(info.Sequence, info.ShroudVariants[j]);
|
||||||
var fogSequence = sequenceProvider.GetSequence(info.Sequence, info.FogVariants[j]);
|
var fogSequence = sequences.GetSequence(info.Sequence, info.FogVariants[j]);
|
||||||
for (var i = 0; i < info.Index.Length; i++)
|
for (var i = 0; i < info.Index.Length; i++)
|
||||||
{
|
{
|
||||||
shroudSprites[j * variantStride + i] = (shroudSequence.GetSprite(i), shroudSequence.Scale, shroudSequence.GetAlpha(i));
|
shroudSprites[j * variantStride + i] = (shroudSequence.GetSprite(i), shroudSequence.Scale, shroudSequence.GetAlpha(i));
|
||||||
@@ -170,8 +170,8 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
if (info.OverrideFullShroud != null)
|
if (info.OverrideFullShroud != null)
|
||||||
{
|
{
|
||||||
var i = (j + 1) * variantStride - 1;
|
var i = (j + 1) * variantStride - 1;
|
||||||
shroudSequence = sequenceProvider.GetSequence(info.Sequence, info.OverrideFullShroud);
|
shroudSequence = sequences.GetSequence(info.Sequence, info.OverrideFullShroud);
|
||||||
fogSequence = sequenceProvider.GetSequence(info.Sequence, info.OverrideFullFog);
|
fogSequence = sequences.GetSequence(info.Sequence, info.OverrideFullFog);
|
||||||
shroudSprites[i] = (shroudSequence.GetSprite(0), shroudSequence.Scale, shroudSequence.GetAlpha(0));
|
shroudSprites[i] = (shroudSequence.GetSprite(0), shroudSequence.Scale, shroudSequence.GetAlpha(0));
|
||||||
fogSprites[i] = (fogSequence.GetSprite(0), fogSequence.Scale, fogSequence.GetAlpha(0));
|
fogSprites[i] = (fogSequence.GetSprite(0), fogSequence.Scale, fogSequence.GetAlpha(0));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,10 +106,10 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
world = self.World;
|
world = self.World;
|
||||||
hasSmoke = !string.IsNullOrEmpty(info.SmokeImage) && info.SmokeSequences.Length > 0;
|
hasSmoke = !string.IsNullOrEmpty(info.SmokeImage) && info.SmokeSequences.Length > 0;
|
||||||
|
|
||||||
var sequenceProvider = world.Map.Rules.Sequences;
|
var sequences = world.Map.Sequences;
|
||||||
var types = sequenceProvider.Sequences(Info.Sequence);
|
var types = sequences.Sequences(Info.Sequence);
|
||||||
foreach (var t in types)
|
foreach (var t in types)
|
||||||
smudges.Add(t, sequenceProvider.GetSequence(Info.Sequence, t));
|
smudges.Add(t, sequences.GetSequence(Info.Sequence, t));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void WorldLoaded(World w, WorldRenderer wr)
|
public void WorldLoaded(World w, WorldRenderer wr)
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace OpenRA.Mods.Common.UtilityCommands
|
|||||||
SequenceProvider sequences;
|
SequenceProvider sequences;
|
||||||
var mapPackage = new Folder(Platform.EngineDir).OpenPackage(args[2], modData.ModFiles);
|
var mapPackage = new Folder(Platform.EngineDir).OpenPackage(args[2], modData.ModFiles);
|
||||||
if (mapPackage != null)
|
if (mapPackage != null)
|
||||||
sequences = new Map(modData, mapPackage).Rules.Sequences;
|
sequences = new Map(modData, mapPackage).Sequences;
|
||||||
else if (!modData.DefaultSequences.TryGetValue(args[2], out sequences))
|
else if (!modData.DefaultSequences.TryGetValue(args[2], out sequences))
|
||||||
throw new InvalidOperationException($"{args[2]} is not a valid tileset or map path");
|
throw new InvalidOperationException($"{args[2]} is not a valid tileset or map path");
|
||||||
|
|
||||||
|
|||||||
@@ -505,7 +505,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
|
|||||||
var fileExtension = Path.GetExtension(filename.ToLowerInvariant());
|
var fileExtension = Path.GetExtension(filename.ToLowerInvariant());
|
||||||
if (allowedSpriteExtensions.Contains(fileExtension))
|
if (allowedSpriteExtensions.Contains(fileExtension))
|
||||||
{
|
{
|
||||||
currentSprites = world.Map.Rules.Sequences.SpriteCache[prefix + filename];
|
currentSprites = world.Map.Sequences.SpriteCache[prefix + filename];
|
||||||
currentFrame = 0;
|
currentFrame = 0;
|
||||||
|
|
||||||
if (frameSlider != null && currentSprites?.Length > 0)
|
if (frameSlider != null && currentSprites?.Length > 0)
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ namespace OpenRA.Mods.D2k.Traits
|
|||||||
this.info = info;
|
this.info = info;
|
||||||
|
|
||||||
var world = wr.World;
|
var world = wr.World;
|
||||||
var sequences = world.Map.Rules.Sequences;
|
var sequences = world.Map.Sequences;
|
||||||
|
|
||||||
var techTree = init.Get<OwnerInit>().Value(world).PlayerActor.Trait<TechTree>();
|
var techTree = init.Get<OwnerInit>().Value(world).PlayerActor.Trait<TechTree>();
|
||||||
checkUnsafeTiles = info.RequiresPrerequisites.Length > 0 && techTree.HasPrerequisites(info.RequiresPrerequisites);
|
checkUnsafeTiles = info.RequiresPrerequisites.Length > 0 && techTree.HasPrerequisites(info.RequiresPrerequisites);
|
||||||
|
|||||||
Reference in New Issue
Block a user