LADXHD/InGame/Overlay/Sequences/MapOverlaySequence.cs
2023-12-14 17:21:22 -05:00

77 lines
2.9 KiB
C#

using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using ProjectZ.InGame.Controls;
using ProjectZ.InGame.Things;
namespace ProjectZ.InGame.Overlay.Sequences
{
class MapOverlaySequence : GameSequence
{
private MapOverlay _mapOverlay;
public MapOverlaySequence()
{
_sequenceWidth = 144;
_sequenceHeight = 144;
_mapOverlay = new MapOverlay(_sequenceWidth, _sequenceHeight, 0, true);
_mapOverlay.Load();
_mapOverlay.IsSelected = true;
_mapOverlay.UpdateRenderTarget();
}
public override void OnStart()
{
base.OnStart();
_mapOverlay.OnFocus();
}
public override void Update()
{
base.Update();
_mapOverlay.UpdateRenderTarget();
_mapOverlay.Update();
// can close the overlay if the dialog isn't running anymore
if (ControlHandler.ButtonPressed(CButtons.B) &&
!Game1.GameManager.InGameOverlay.TextboxOverlay.IsOpen)
Game1.GameManager.InGameOverlay.CloseOverlay();
}
public override void DrawRT(SpriteBatch spriteBatch)
{
_mapOverlay.DrawRenderTarget(spriteBatch);
Game1.Graphics.GraphicsDevice.SetRenderTarget(null);
}
public override void Draw(SpriteBatch spriteBatch, float transparency)
{
spriteBatch.End();
var width = _sequenceWidth * Game1.UiScale;
var height = _sequenceHeight * Game1.UiScale;
_mapOverlay.Draw(spriteBatch, new Rectangle(
Game1.WindowWidth / 2 - width / 2,
Game1.WindowHeight / 2 - height / 2, width, height), Color.White * transparency, Game1.GetMatrix);
spriteBatch.Begin(SpriteSortMode.Deferred, null, SamplerState.PointClamp, null, null, null, null);
// draw close text
{
var selectStr = "";
if (ControlHandler.LastKeyboardDown && ControlHandler.ButtonDictionary[CButtons.B].Keys.Length > 0)
selectStr = ControlHandler.ButtonDictionary[CButtons.B].Keys[0].ToString();
if (!ControlHandler.LastKeyboardDown && ControlHandler.ButtonDictionary[CButtons.B].Buttons.Length > 0)
selectStr = ControlHandler.ButtonDictionary[CButtons.B].Buttons[0].ToString();
var inputHelper = selectStr + ": " + Game1.LanguageManager.GetString("map_overlay_close", "error");
spriteBatch.DrawString(Resources.GameFont, inputHelper,
new Vector2(8 * Game1.UiScale, Game1.WindowHeight - 16 * Game1.UiScale), Color.White * transparency, 0, Vector2.Zero, Game1.UiScale, SpriteEffects.None, 0);
}
}
}
}