almost completed map load flow
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Michele Scandura 2021-09-16 15:47:10 +01:00
parent 8c6df57fb1
commit e18cbb157c
5 changed files with 48 additions and 24 deletions

View file

@ -76,6 +76,10 @@ namespace Sledgemapper
[Get("/campaign/{campaignName}/maps")] [Get("/campaign/{campaignName}/maps")]
Task<List<Session>> GetMaps(string campaignName); Task<List<Session>> GetMaps(string campaignName);
[Get("/map/{campaignName}/{mapName}")]
Task<Session> GetMap(string campaignName, string mapName);
[Post("/campaign/{campaignName}/players/{email}")] [Post("/campaign/{campaignName}/players/{email}")]
Task InvitePlayer(string campaignName, string email); Task InvitePlayer(string campaignName, string email);
} }

View file

@ -2,8 +2,10 @@ namespace Sledgemapper.Messages
{ {
public class MapOpenedMessage : TinyMessenger.TinyMessageBase public class MapOpenedMessage : TinyMessenger.TinyMessageBase
{ {
public string MapName { get; set; }
public MapOpenedMessage(object sender) : base(sender) public MapOpenedMessage(object sender) : base(sender)
{ {
} }
} }
} }

View file

@ -59,6 +59,7 @@ namespace Sledgemapper
public string CampaignName { get; set; } public string CampaignName { get; set; }
public bool ShowCellNumbers { get; set; } public bool ShowCellNumbers { get; set; }
public Vector3 ViewportCenter { get; set; } public Vector3 ViewportCenter { get; set; }
public string MapName { get; internal set; }
//public State() //public State()
//{ //{

View file

@ -17,11 +17,11 @@ namespace Sledgemapper.UI
{ {
public partial class MainWidget public partial class MainWidget
{ {
private readonly CommunicationManager CommunicationManager; private CommunicationManager CommunicationManager { get; }
private readonly TinyMessengerHub _messenger; private TinyMessengerHub Messenger { get; }
private readonly GameWindow Window; private GameWindow Window { get; }
public MainWidget(CommunicationManager communicationManager, TinyMessengerHub messenger, GameWindow window) public MainWidget(CommunicationManager communicationManager, TinyMessengerHub messenger, GameWindow window)
{ {
@ -29,7 +29,7 @@ namespace Sledgemapper.UI
CommunicationManager = communicationManager; CommunicationManager = communicationManager;
Window = window; Window = window;
_messenger = messenger; Messenger = messenger;
MenuConnectLogin.Selected += OnMenuConnectLoginSelected; MenuConnectLogin.Selected += OnMenuConnectLoginSelected;
MenuConnectSync.Selected += OnMenuConnectSyncSelected; MenuConnectSync.Selected += OnMenuConnectSyncSelected;
MenuFileLoad.Selected += OnMenuFileLoadSelected; MenuFileLoad.Selected += OnMenuFileLoadSelected;
@ -63,11 +63,11 @@ namespace Sledgemapper.UI
BtnToolbarRoom.Click += OnBtnToolbarRoomClicked; BtnToolbarRoom.Click += OnBtnToolbarRoomClicked;
BtnToolbarDelete.Click += OnBtnToolbarDeleteClicked; BtnToolbarDelete.Click += OnBtnToolbarDeleteClicked;
_messenger.Subscribe<LoginSuccesfulMessage>(OnLoginSuccesfulMessage); Messenger.Subscribe<LoginSuccesfulMessage>(OnLoginSuccesfulMessage);
_messenger.Subscribe<SignalrConnectionUpdateMessage>(OnSignalrConnectionUpdateMessage); Messenger.Subscribe<SignalrConnectionUpdateMessage>(OnSignalrConnectionUpdateMessage);
_messenger.Subscribe<MapOpenedMessage>(OnMapOpenedMessage); Messenger.Subscribe<MapOpenedMessage>(OnMapOpenedMessage);
_messenger.Subscribe<CenterOnTileMessage>(OnCenterOnTileMessage); Messenger.Subscribe<CenterOnTileMessage>(OnCenterOnTileMessage);
_messenger.Subscribe<CampaignSelectedMessage>(OnCampaignSelectedMessage); Messenger.Subscribe<CampaignSelectedMessage>(OnCampaignSelectedMessage);
} }
private void OnCampaignSelectedMessage(CampaignSelectedMessage obj) private void OnCampaignSelectedMessage(CampaignSelectedMessage obj)
@ -85,7 +85,7 @@ namespace Sledgemapper.UI
private void OnMapOpenedMessage(MapOpenedMessage obj) private void OnMapOpenedMessage(MapOpenedMessage obj)
{ {
lblMap.Text = CommunicationManager.SessionData.SessionName; lblMap.Text = obj.MapName;
MenuConnectSync.Enabled = true; MenuConnectSync.Enabled = true;
MenuConnectUpload.Enabled = true; MenuConnectUpload.Enabled = true;
CommunicationManager.SessionData.MapEntityAdded -= OnMapEntityAdded; CommunicationManager.SessionData.MapEntityAdded -= OnMapEntityAdded;
@ -141,7 +141,7 @@ namespace Sledgemapper.UI
Title = "Login" Title = "Login"
}; };
var content = new LoginRegisterWindow(CommunicationManager, _messenger); var content = new LoginRegisterWindow(CommunicationManager, Messenger);
window.Content = content; window.Content = content;
window.ShowModal(Desktop); window.ShowModal(Desktop);
} }
@ -159,7 +159,7 @@ namespace Sledgemapper.UI
Title = "New mapping session" Title = "New mapping session"
}; };
var content = new SessionWindow(CommunicationManager, _messenger); var content = new SessionWindow(CommunicationManager, Messenger);
window.Content = content; window.Content = content;
window.ShowModal(Desktop); window.ShowModal(Desktop);
@ -293,7 +293,7 @@ namespace Sledgemapper.UI
return; return;
} }
new SessionWindow(CommunicationManager, _messenger).ShowInModalWindow(Desktop, "Join mapping session"); new SessionWindow(CommunicationManager, Messenger).ShowInModalWindow(Desktop, "Join mapping session");
} }
private void OnMenuViewShowCellNUmbersSelected(object sender, EventArgs e) private void OnMenuViewShowCellNUmbersSelected(object sender, EventArgs e)
@ -313,7 +313,7 @@ namespace Sledgemapper.UI
Title = "Notes" Title = "Notes"
}; };
new NoteList(CommunicationManager, _messenger).ShowInModalWindow(Desktop, "Notes"); new NoteList(CommunicationManager, Messenger).ShowInModalWindow(Desktop, "Notes");
} }
private void CenterOnSelectedTile() private void CenterOnSelectedTile()
@ -337,7 +337,7 @@ namespace Sledgemapper.UI
return; return;
} }
new CampaignWindow(CommunicationManager, _messenger).ShowInModalWindow(Desktop, "New campaign"); ; new CampaignWindow(CommunicationManager, Messenger).ShowInModalWindow(Desktop, "New campaign"); ;
} }
private async void OnMenuCampaignOpen(object sender, EventArgs e) private async void OnMenuCampaignOpen(object sender, EventArgs e)
@ -347,7 +347,7 @@ namespace Sledgemapper.UI
return; return;
} }
var content = new CampaignList(CommunicationManager, _messenger); var content = new CampaignList(CommunicationManager, Messenger);
await content.LoadCampaigns(); await content.LoadCampaigns();
content.ShowInModalWindow(Desktop, "Campaigns"); content.ShowInModalWindow(Desktop, "Campaigns");
} }
@ -371,7 +371,7 @@ namespace Sledgemapper.UI
return; return;
} }
var content = new MapList(CommunicationManager); var content = new MapList(CommunicationManager, Messenger);
await content.LoadMaps(); await content.LoadMaps();
content.ShowInModalWindow(Desktop, "Maps"); content.ShowInModalWindow(Desktop, "Maps");
} }

View file

@ -1,24 +1,40 @@
/* Generated by MyraPad at 03/09/2021 17:13:57 */ /* Generated by MyraPad at 03/09/2021 17:13:57 */
using Myra.Graphics2D.Brushes; using Myra.Graphics2D.Brushes;
using Myra.Graphics2D.UI; using Myra.Graphics2D.UI;
using Sledgemapper.Messages;
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using TinyMessenger;
namespace Sledgemapper.UI namespace Sledgemapper.UI
{ {
public partial class MapList public partial class MapList
{ {
public CommunicationManager CommunicationManager { get; } private CommunicationManager CommunicationManager { get; }
private TinyMessengerHub Messenger { get; }
public MapList(CommunicationManager communicationManager) private string _selectedMap;
{ public MapList(CommunicationManager communicationManager, TinyMessengerHub messenger)
CommunicationManager= communicationManager; {
BuildUI(); CommunicationManager = communicationManager;
Messenger = messenger;
BuildUI();
BtnNewCampaign.Click += (s, e) => BtnNewCampaign.Click += (s, e) =>
{ {
OnMenuMapNew(s, e); OnMenuMapNew(s, e);
this.GetContainingWindow().Close(); this.GetContainingWindow().Close();
}; };
BtnLoadCampaign.Click += BtnLoadCampaign_Click;
}
private void BtnLoadCampaign_Click(object sender, EventArgs e)
{
State.Instance.MapName = _selectedMap;
var map = CommunicationManager.Api.GetMap(State.Instance.CampaignName, State.Instance.MapName);
Messenger.Publish(new MapOpenedMessage(this) { MapName = State.Instance.MapName });
this.GetContainingWindow().Close();
} }
public async Task LoadMaps() public async Task LoadMaps()
@ -45,6 +61,7 @@ namespace Sledgemapper.UI
currentItem.Background = new SolidBrush("#D9D9D9FF"); currentItem.Background = new SolidBrush("#D9D9D9FF");
} }
item.Background = new SolidBrush(Settings.Instance.OverlayTintColor); item.Background = new SolidBrush(Settings.Instance.OverlayTintColor);
_selectedMap = item.ItemName.Text;
} }
private void OnMenuMapNew(object sender, EventArgs e) private void OnMenuMapNew(object sender, EventArgs e)