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

View File

@@ -20,14 +20,14 @@ namespace OpenRA.Mods.Common.Widgets.Logic
Widget panel; Widget panel;
[ObjectCreator.UseCtor] [ObjectCreator.UseCtor]
public NewMapLogic(Action onExit, Action<string> onSelect, Ruleset modRules, Widget widget, World world) public NewMapLogic(Action onExit, Action<string> onSelect, Widget widget, World world)
{ {
panel = widget; panel = widget;
panel.Get<ButtonWidget>("CANCEL_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); }; panel.Get<ButtonWidget>("CANCEL_BUTTON").OnClick = () => { Ui.CloseWindow(); onExit(); };
var tilesetDropDown = panel.Get<DropDownButtonWidget>("TILESET"); var tilesetDropDown = panel.Get<DropDownButtonWidget>("TILESET");
var tilesets = modRules.TileSets.Select(t => t.Key).ToList(); var tilesets = world.Map.Rules.TileSets.Select(t => t.Key).ToList();
Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) => Func<string, ScrollItemWidget, ScrollItemWidget> setupItem = (option, template) =>
{ {
var item = ScrollItemWidget.Setup(template, var item = ScrollItemWidget.Setup(template,
@@ -55,7 +55,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
height = Math.Max(2, height); height = Math.Max(2, height);
var maxTerrainHeight = world.Map.Grid.MaximumTerrainHeight; var maxTerrainHeight = world.Map.Grid.MaximumTerrainHeight;
var tileset = modRules.TileSets[tilesetDropDown.Text]; var tileset = world.Map.Rules.TileSets[tilesetDropDown.Text];
var map = new Map(Game.ModData, tileset, width + 2, height + maxTerrainHeight + 2); var map = new Map(Game.ModData, tileset, width + 2, height + maxTerrainHeight + 2);
var tl = new PPos(1, 1); var tl = new PPos(1, 1);
@@ -63,7 +63,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
map.SetBounds(tl, br); map.SetBounds(tl, br);
map.PlayerDefinitions = new MapPlayers(map.Rules, map.SpawnPoints.Value.Length).ToMiniYaml(); map.PlayerDefinitions = new MapPlayers(map.Rules, map.SpawnPoints.Value.Length).ToMiniYaml();
map.FixOpenAreas(modRules); map.FixOpenAreas(world.Map.Rules);
Action<string> afterSave = uid => Action<string> afterSave = uid =>
{ {

View File

@@ -23,9 +23,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
readonly ScrollItemWidget itemTemplate; readonly ScrollItemWidget itemTemplate;
[ObjectCreator.UseCtor] [ObjectCreator.UseCtor]
public TileSelectorLogic(Widget widget, WorldRenderer worldRenderer, Ruleset modRules) public TileSelectorLogic(Widget widget, WorldRenderer worldRenderer)
{ {
var tileset = modRules.TileSets[worldRenderer.World.Map.Tileset]; var rules = worldRenderer.World.Map.Rules;
var tileset = rules.TileSets[worldRenderer.World.Map.Tileset];
editor = widget.Parent.Get<EditorViewportControllerWidget>("MAP_EDITOR"); editor = widget.Parent.Get<EditorViewportControllerWidget>("MAP_EDITOR");
panel = widget.Get<ScrollPanelWidget>("TILETEMPLATE_LIST"); panel = widget.Get<ScrollPanelWidget>("TILETEMPLATE_LIST");