Remove ModRules assumption from editor code.
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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 =>
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
Reference in New Issue
Block a user