diff --git a/OpenRA.Game/Graphics/Animation.cs b/OpenRA.Game/Graphics/Animation.cs index 05c48840d7..95a7770e01 100644 --- a/OpenRA.Game/Graphics/Animation.cs +++ b/OpenRA.Game/Graphics/Animation.cs @@ -43,7 +43,7 @@ namespace OpenRA.Graphics public Animation(World world, string name, Func facingFunc, Func paused) { - sequenceProvider = world.Map.SequenceProvider; + sequenceProvider = world.Map.Rules.Sequences; Name = name.ToLowerInvariant(); this.facingFunc = facingFunc; this.paused = paused; diff --git a/OpenRA.Game/Map/Map.cs b/OpenRA.Game/Map/Map.cs index 6fd195351e..11a8d78379 100644 --- a/OpenRA.Game/Map/Map.cs +++ b/OpenRA.Game/Map/Map.cs @@ -171,7 +171,6 @@ namespace OpenRA [FieldLoader.Ignore] Lazy rules; public Ruleset Rules { get { return rules != null ? rules.Value : null; } } - public SequenceProvider SequenceProvider { get { return Rules.Sequences; } } [FieldLoader.Ignore] public ProjectedCellRegion ProjectedCellBounds; [FieldLoader.Ignore] public CellRegion AllCells; diff --git a/OpenRA.Game/ModData.cs b/OpenRA.Game/ModData.cs index 1792eaa620..acd79db162 100644 --- a/OpenRA.Game/ModData.cs +++ b/OpenRA.Game/ModData.cs @@ -197,7 +197,7 @@ namespace OpenRA using (new Support.PerfTimer("Map.PreloadRules")) map.PreloadRules(); using (new Support.PerfTimer("Map.SequenceProvider.Preload")) - map.SequenceProvider.Preload(); + map.Rules.Sequences.Preload(); // Load music with map assets mounted using (new Support.PerfTimer("Map.Music")) diff --git a/OpenRA.Game/Traits/World/ResourceType.cs b/OpenRA.Game/Traits/World/ResourceType.cs index 21140dc066..2fc3ebd8c2 100644 --- a/OpenRA.Game/Traits/World/ResourceType.cs +++ b/OpenRA.Game/Traits/World/ResourceType.cs @@ -48,7 +48,7 @@ namespace OpenRA.Traits Variants = new Dictionary(); foreach (var v in info.Variants) { - var seq = world.Map.SequenceProvider.GetSequence(Info.Sequence, v); + var seq = world.Map.Rules.Sequences.GetSequence(Info.Sequence, v); var sprites = Exts.MakeArray(seq.Length, x => seq.GetSprite(x)); Variants.Add(v, sprites); } diff --git a/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs b/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs index c609cfeba2..f7cc81a6a8 100644 --- a/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs +++ b/OpenRA.Mods.Common/Orders/PlaceBuildingOrderGenerator.cs @@ -56,8 +56,8 @@ namespace OpenRA.Mods.Common.Orders faction = buildableInfo.ForceFaction ?? (mostLikelyProducer.Trait != null ? mostLikelyProducer.Trait.Faction : queue.Actor.Owner.Faction.InternalName); - buildOk = map.SequenceProvider.GetSequence("overlay", "build-valid-{0}".F(tileset)).GetSprite(0); - buildBlocked = map.SequenceProvider.GetSequence("overlay", "build-invalid").GetSprite(0); + buildOk = map.Rules.Sequences.GetSequence("overlay", "build-valid-{0}".F(tileset)).GetSprite(0); + buildBlocked = map.Rules.Sequences.GetSequence("overlay", "build-invalid").GetSprite(0); buildingInfluence = world.WorldActor.Trait(); } diff --git a/OpenRA.Mods.Common/Traits/BodyOrientation.cs b/OpenRA.Mods.Common/Traits/BodyOrientation.cs index 27e9bfbf76..123c7c5fc1 100644 --- a/OpenRA.Mods.Common/Traits/BodyOrientation.cs +++ b/OpenRA.Mods.Common/Traits/BodyOrientation.cs @@ -91,7 +91,7 @@ namespace OpenRA.Mods.Common.Traits throw new InvalidOperationException("Actor type '" + self.Info.Name + "' does not define a quantized body orientation."); } - return qboi.QuantizedBodyFacings(self.Info, self.World.Map.SequenceProvider, faction); + return qboi.QuantizedBodyFacings(self.Info, self.World.Map.Rules.Sequences, faction); }); } diff --git a/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs b/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs index 1cfeb38239..578cf1cf02 100644 --- a/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs +++ b/OpenRA.Mods.Common/Traits/Render/RenderSprites.cs @@ -46,7 +46,7 @@ namespace OpenRA.Mods.Common.Traits public IEnumerable RenderPreview(ActorPreviewInitializer init) { - var sequenceProvider = init.World.Map.SequenceProvider; + var sequenceProvider = init.World.Map.Rules.Sequences; var faction = init.Get(); var ownerName = init.Get().PlayerName; var image = GetImage(init.Actor, sequenceProvider, faction); @@ -143,7 +143,7 @@ namespace OpenRA.Mods.Common.Traits if (cachedImage != null) return cachedImage; - return cachedImage = info.GetImage(self.Info, self.World.Map.SequenceProvider, faction); + return cachedImage = info.GetImage(self.Info, self.World.Map.Rules.Sequences, faction); } public void UpdatePalette() diff --git a/OpenRA.Mods.Common/Traits/Render/RenderVoxels.cs b/OpenRA.Mods.Common/Traits/Render/RenderVoxels.cs index 080bf01f4a..a71ed9d389 100644 --- a/OpenRA.Mods.Common/Traits/Render/RenderVoxels.cs +++ b/OpenRA.Mods.Common/Traits/Render/RenderVoxels.cs @@ -51,7 +51,7 @@ namespace OpenRA.Mods.Common.Traits var body = init.Actor.TraitInfo(); var faction = init.Get(); var ownerName = init.Get().PlayerName; - var sequenceProvider = init.World.Map.SequenceProvider; + var sequenceProvider = init.World.Map.Rules.Sequences; var image = Image ?? init.Actor.Name; var facings = body.QuantizedFacings == -1 ? init.Actor.TraitInfo().QuantizedBodyFacings(init.Actor, sequenceProvider, faction) : diff --git a/OpenRA.Mods.Common/Traits/SupportPowers/GrantUpgradePower.cs b/OpenRA.Mods.Common/Traits/SupportPowers/GrantUpgradePower.cs index 2635ccd4c8..b272eff2fd 100644 --- a/OpenRA.Mods.Common/Traits/SupportPowers/GrantUpgradePower.cs +++ b/OpenRA.Mods.Common/Traits/SupportPowers/GrantUpgradePower.cs @@ -123,7 +123,7 @@ namespace OpenRA.Mods.Common.Traits this.order = order; this.power = power; range = power.info.Range; - tile = world.Map.SequenceProvider.GetSequence("overlay", "target-select").GetSprite(0); + tile = world.Map.Rules.Sequences.GetSequence("overlay", "target-select").GetSprite(0); } public IEnumerable Order(World world, CPos cell, int2 worldPixel, MouseInput mi) diff --git a/OpenRA.Mods.Common/Traits/World/EditorSelectionLayer.cs b/OpenRA.Mods.Common/Traits/World/EditorSelectionLayer.cs index 3586bb79a1..88511fc3c1 100644 --- a/OpenRA.Mods.Common/Traits/World/EditorSelectionLayer.cs +++ b/OpenRA.Mods.Common/Traits/World/EditorSelectionLayer.cs @@ -53,8 +53,8 @@ namespace OpenRA.Mods.Common.Traits this.info = info; map = self.World.Map; - copySprite = map.SequenceProvider.GetSequence(info.Image, info.CopySequence).GetSprite(0); - pasteSprite = map.SequenceProvider.GetSequence(info.Image, info.PasteSequence).GetSprite(0); + copySprite = map.Rules.Sequences.GetSequence(info.Image, info.CopySequence).GetSprite(0); + pasteSprite = map.Rules.Sequences.GetSequence(info.Image, info.PasteSequence).GetSprite(0); } public void WorldLoaded(World w, WorldRenderer wr) diff --git a/OpenRA.Mods.Common/Traits/World/ShroudRenderer.cs b/OpenRA.Mods.Common/Traits/World/ShroudRenderer.cs index 2b66c2e080..3c77892dc3 100644 --- a/OpenRA.Mods.Common/Traits/World/ShroudRenderer.cs +++ b/OpenRA.Mods.Common/Traits/World/ShroudRenderer.cs @@ -121,10 +121,11 @@ namespace OpenRA.Mods.Common.Traits shroudSprites = new Sprite[variantCount * variantStride]; fogSprites = new Sprite[variantCount * variantStride]; + var sequenceProvider = map.Rules.Sequences; for (var j = 0; j < variantCount; j++) { - var shroud = map.SequenceProvider.GetSequence(info.Sequence, info.ShroudVariants[j]); - var fog = map.SequenceProvider.GetSequence(info.Sequence, info.FogVariants[j]); + var shroud = sequenceProvider.GetSequence(info.Sequence, info.ShroudVariants[j]); + var fog = sequenceProvider.GetSequence(info.Sequence, info.FogVariants[j]); for (var i = 0; i < info.Index.Length; i++) { shroudSprites[j * variantStride + i] = shroud.GetSprite(i); @@ -134,8 +135,8 @@ namespace OpenRA.Mods.Common.Traits if (info.OverrideFullShroud != null) { var i = (j + 1) * variantStride - 1; - shroudSprites[i] = map.SequenceProvider.GetSequence(info.Sequence, info.OverrideFullShroud).GetSprite(0); - fogSprites[i] = map.SequenceProvider.GetSequence(info.Sequence, info.OverrideFullFog).GetSprite(0); + shroudSprites[i] = sequenceProvider.GetSequence(info.Sequence, info.OverrideFullShroud).GetSprite(0); + fogSprites[i] = sequenceProvider.GetSequence(info.Sequence, info.OverrideFullFog).GetSprite(0); } } diff --git a/OpenRA.Mods.Common/Traits/World/SmudgeLayer.cs b/OpenRA.Mods.Common/Traits/World/SmudgeLayer.cs index ff5013f7b0..bc15d3dfe1 100644 --- a/OpenRA.Mods.Common/Traits/World/SmudgeLayer.cs +++ b/OpenRA.Mods.Common/Traits/World/SmudgeLayer.cs @@ -94,10 +94,11 @@ namespace OpenRA.Mods.Common.Traits Info = info; world = self.World; - var types = world.Map.SequenceProvider.Sequences(Info.Sequence); + var sequenceProvider = world.Map.Rules.Sequences; + var types = sequenceProvider.Sequences(Info.Sequence); foreach (var t in types) { - var seq = world.Map.SequenceProvider.GetSequence(Info.Sequence, t); + var seq = sequenceProvider.GetSequence(Info.Sequence, t); var sprites = Exts.MakeArray(seq.Length, x => seq.GetSprite(x)); smudges.Add(t, sprites); } diff --git a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs index a0d8bcf39d..767902d0b5 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs @@ -328,7 +328,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic else { currentFilename = filename; - currentSprites = world.Map.SequenceProvider.SpriteCache[filename]; + currentSprites = world.Map.Rules.Sequences.SpriteCache[filename]; currentFrame = 0; frameSlider.MaximumValue = (float)currentSprites.Length - 1; frameSlider.Ticks = currentSprites.Length; diff --git a/OpenRA.Mods.Common/Widgets/ObserverProductionIconsWidget.cs b/OpenRA.Mods.Common/Widgets/ObserverProductionIconsWidget.cs index 6295e965ca..54b4bfea66 100644 --- a/OpenRA.Mods.Common/Widgets/ObserverProductionIconsWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ObserverProductionIconsWidget.cs @@ -86,7 +86,7 @@ namespace OpenRA.Mods.Common.Widgets continue; var rsi = actor.TraitInfo(); - var icon = new Animation(world, rsi.GetImage(actor, world.Map.SequenceProvider, faction)); + var icon = new Animation(world, rsi.GetImage(actor, world.Map.Rules.Sequences, faction)); icon.Play(actor.TraitInfo().Icon); var bi = actor.TraitInfo(); var location = new float2(RenderBounds.Location) + new float2(queue.i * (IconWidth + IconSpacing), 0); diff --git a/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs b/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs index 3ea99d1d53..0801a934b2 100644 --- a/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs +++ b/OpenRA.Mods.Common/Widgets/ProductionPaletteWidget.cs @@ -331,7 +331,7 @@ namespace OpenRA.Mods.Common.Widgets var rect = new Rectangle(rb.X + x * (IconSize.X + IconMargin.X), rb.Y + y * (IconSize.Y + IconMargin.Y), IconSize.X, IconSize.Y); var rsi = item.TraitInfo(); - var icon = new Animation(World, rsi.GetImage(item, World.Map.SequenceProvider, faction)); + var icon = new Animation(World, rsi.GetImage(item, World.Map.Rules.Sequences, faction)); icon.Play(item.TraitInfo().Icon); var bi = item.TraitInfo(); diff --git a/OpenRA.Mods.RA/Graphics/TeslaZapRenderable.cs b/OpenRA.Mods.RA/Graphics/TeslaZapRenderable.cs index 1a22424876..79c3a91a64 100644 --- a/OpenRA.Mods.RA/Graphics/TeslaZapRenderable.cs +++ b/OpenRA.Mods.RA/Graphics/TeslaZapRenderable.cs @@ -92,8 +92,8 @@ namespace OpenRA.Mods.RA.Graphics public IEnumerable GenerateRenderables(WorldRenderer wr) { - var bright = wr.World.Map.SequenceProvider.GetSequence(image, brightSequence); - var dim = wr.World.Map.SequenceProvider.GetSequence(image, dimSequence); + var bright = wr.World.Map.Rules.Sequences.GetSequence(image, brightSequence); + var dim = wr.World.Map.Rules.Sequences.GetSequence(image, dimSequence); var source = wr.ScreenPosition(pos); var target = wr.ScreenPosition(pos + length); diff --git a/OpenRA.Mods.RA/Traits/Disguise.cs b/OpenRA.Mods.RA/Traits/Disguise.cs index c15c94d5de..2870b40487 100644 --- a/OpenRA.Mods.RA/Traits/Disguise.cs +++ b/OpenRA.Mods.RA/Traits/Disguise.cs @@ -169,7 +169,7 @@ namespace OpenRA.Mods.RA.Traits var oldEffectiveOwner = AsPlayer; var renderSprites = actorInfo.TraitInfoOrDefault(); - AsSprite = renderSprites == null ? null : renderSprites.GetImage(actorInfo, self.World.Map.SequenceProvider, newOwner.Faction.InternalName); + AsSprite = renderSprites == null ? null : renderSprites.GetImage(actorInfo, self.World.Map.Rules.Sequences, newOwner.Faction.InternalName); AsPlayer = newOwner; AsTooltipInfo = actorInfo.TraitInfos().FirstOrDefault(); diff --git a/OpenRA.Mods.RA/Traits/Minelayer.cs b/OpenRA.Mods.RA/Traits/Minelayer.cs index 8ad35e69a2..5ee24a3ad9 100644 --- a/OpenRA.Mods.RA/Traits/Minelayer.cs +++ b/OpenRA.Mods.RA/Traits/Minelayer.cs @@ -44,7 +44,7 @@ namespace OpenRA.Mods.RA.Traits this.self = self; var tileset = self.World.TileSet.Id.ToLowerInvariant(); - tile = self.World.Map.SequenceProvider.GetSequence("overlay", "build-valid-{0}".F(tileset)).GetSprite(0); + tile = self.World.Map.Rules.Sequences.GetSequence("overlay", "build-valid-{0}".F(tileset)).GetSprite(0); } public IEnumerable Orders @@ -141,8 +141,8 @@ namespace OpenRA.Mods.RA.Traits minefieldStart = xy; var tileset = self.World.TileSet.Id.ToLowerInvariant(); - tileOk = self.World.Map.SequenceProvider.GetSequence("overlay", "build-valid-{0}".F(tileset)).GetSprite(0); - tileBlocked = self.World.Map.SequenceProvider.GetSequence("overlay", "build-invalid").GetSprite(0); + tileOk = self.World.Map.Rules.Sequences.GetSequence("overlay", "build-valid-{0}".F(tileset)).GetSprite(0); + tileBlocked = self.World.Map.Rules.Sequences.GetSequence("overlay", "build-invalid").GetSprite(0); } public IEnumerable Order(World world, CPos cell, int2 worldPixel, MouseInput mi) diff --git a/OpenRA.Mods.RA/Traits/SupportPowers/ChronoshiftPower.cs b/OpenRA.Mods.RA/Traits/SupportPowers/ChronoshiftPower.cs index 6ed8f61ae6..5b237319de 100644 --- a/OpenRA.Mods.RA/Traits/SupportPowers/ChronoshiftPower.cs +++ b/OpenRA.Mods.RA/Traits/SupportPowers/ChronoshiftPower.cs @@ -132,7 +132,7 @@ namespace OpenRA.Mods.RA.Traits var info = (ChronoshiftPowerInfo)power.Info; range = info.Range; - tile = world.Map.SequenceProvider.GetSequence(info.OverlaySpriteGroup, info.SourceTileSequence).GetSprite(0); + tile = world.Map.Rules.Sequences.GetSequence(info.OverlaySpriteGroup, info.SourceTileSequence).GetSprite(0); } public IEnumerable Order(World world, CPos cell, int2 worldPixel, MouseInput mi) @@ -196,9 +196,9 @@ namespace OpenRA.Mods.RA.Traits range = info.Range; var tileset = manager.Self.World.TileSet.Id.ToLowerInvariant(); - validTile = world.Map.SequenceProvider.GetSequence(info.OverlaySpriteGroup, info.ValidTileSequencePrefix + tileset).GetSprite(0); - invalidTile = world.Map.SequenceProvider.GetSequence(info.OverlaySpriteGroup, info.InvalidTileSequence).GetSprite(0); - sourceTile = world.Map.SequenceProvider.GetSequence(info.OverlaySpriteGroup, info.SourceTileSequence).GetSprite(0); + validTile = world.Map.Rules.Sequences.GetSequence(info.OverlaySpriteGroup, info.ValidTileSequencePrefix + tileset).GetSprite(0); + invalidTile = world.Map.Rules.Sequences.GetSequence(info.OverlaySpriteGroup, info.InvalidTileSequence).GetSprite(0); + sourceTile = world.Map.Rules.Sequences.GetSequence(info.OverlaySpriteGroup, info.SourceTileSequence).GetSprite(0); } public IEnumerable Order(World world, CPos cell, int2 worldPixel, MouseInput mi)