Implement new viewport size/zoom UI.

This commit is contained in:
Paul Chote
2019-12-11 18:48:43 +00:00
committed by tovl
parent 860117daf9
commit 1dcb903580
17 changed files with 319 additions and 253 deletions

View File

@@ -39,6 +39,9 @@ namespace OpenRA.Mods.Common.Widgets
editorActionManager = world.WorldActor.Trait<EditorActionManager>();
editorActionManager.OnChange += EditorActionManagerOnChange;
// Allow zooming out to full map size
worldRenderer.Viewport.UnlockMinimumZoom(0.25f);
}
void EditorActionManagerOnChange()
@@ -80,26 +83,11 @@ namespace OpenRA.Mods.Common.Widgets
tooltipContainer.Value.RemoveTooltip();
}
void Zoom(int amount)
{
var zoomSteps = worldRenderer.Viewport.AvailableZoomSteps;
var currentZoom = worldRenderer.Viewport.Zoom;
var nextIndex = zoomSteps.IndexOf(currentZoom) - amount;
if (nextIndex < 0 || nextIndex >= zoomSteps.Length)
return;
var zoom = zoomSteps[nextIndex];
Parent.Get<DropDownButtonWidget>("ZOOM_BUTTON").SelectedItem = zoom.ToString();
worldRenderer.Viewport.Zoom = zoom;
}
public override bool HandleMouseInput(MouseInput mi)
{
if (mi.Event == MouseInputEvent.Scroll &&
Game.Settings.Game.AllowZoom && mi.Modifiers.HasModifier(Game.Settings.Game.ZoomModifier))
if (mi.Event == MouseInputEvent.Scroll && mi.Modifiers.HasModifier(Game.Settings.Game.ZoomModifier))
{
Zoom(mi.Delta.Y);
worldRenderer.Viewport.AdjustZoom(mi.Delta.Y * Game.Settings.Game.ZoomSpeed);
return true;
}