Remove ModRules assumption from editor code.

This commit is contained in:
Paul Chote
2016-02-17 02:43:10 +00:00
parent ecbd1a0247
commit ff2aabda9b
3 changed files with 12 additions and 13 deletions

View File

@@ -19,7 +19,6 @@ namespace OpenRA.Mods.Common.Widgets.Logic
public class LayerSelectorLogic : ChromeLogic
{
readonly EditorViewportControllerWidget editor;
readonly Ruleset modRules;
readonly World world;
readonly WorldRenderer worldRenderer;
@@ -27,9 +26,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
readonly ScrollItemWidget layerPreviewTemplate;
[ObjectCreator.UseCtor]
public LayerSelectorLogic(Widget widget, WorldRenderer worldRenderer, Ruleset modRules)
public LayerSelectorLogic(Widget widget, WorldRenderer worldRenderer)
{
this.modRules = modRules;
this.worldRenderer = worldRenderer;
world = worldRenderer.World;
@@ -45,8 +43,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
void IntializeLayerPreview(Widget widget)
{
layerTemplateList.RemoveChildren();
var resources = modRules.Actors["world"].TraitInfos<ResourceTypeInfo>();
var rules = worldRenderer.World.Map.Rules;
var resources = rules.Actors["world"].TraitInfos<ResourceTypeInfo>();
var tileSize = worldRenderer.World.Map.Grid.TileSize;
foreach (var resource in resources)
{
var newResourcePreviewTemplate = ScrollItemWidget.Setup(layerPreviewTemplate,
@@ -61,12 +60,11 @@ namespace OpenRA.Mods.Common.Widgets.Logic
layerPreview.GetPalette = () => resource.Palette;
var variant = resource.Variants.FirstOrDefault();
var sequenceProvider = modRules.Sequences[world.TileSet.Id];
var sequenceProvider = rules.Sequences[world.TileSet.Id];
var sequence = sequenceProvider.GetSequence("resources", variant);
var frame = sequence.Frames != null ? sequence.Frames.Last() : resource.MaxDensity - 1;
layerPreview.GetSprite = () => sequence.GetSprite(frame);
var tileSize = Game.ModData.Manifest.Get<MapGrid>().TileSize;
layerPreview.Bounds.Width = tileSize.Width;
layerPreview.Bounds.Height = tileSize.Height;
newResourcePreviewTemplate.Bounds.Width = tileSize.Width + (layerPreview.Bounds.X * 2);