Merge pull request 'roomDrawingArea' (#39) from roomDrawingArea into develop
Reviewed-on: michele/Map#39
This commit is contained in:
commit
5434766207
1 changed files with 89 additions and 20 deletions
|
@ -148,18 +148,18 @@ namespace Sledgemapper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AddItemToToolGrid(Grid grid, EventHandler eventAction, SpriteSheet spriteSheet, string e="")
|
private void AddItemToToolGrid(Grid grid, EventHandler eventAction, SpriteSheet spriteSheet, string e = "")
|
||||||
{
|
{
|
||||||
var indexX = 0;
|
var indexX = 0;
|
||||||
var indexY = 0;
|
var indexY = 0;
|
||||||
//foreach (var item in spriteSheet.index)
|
//foreach (var item in spriteSheet.index)
|
||||||
grid.Widgets.Clear();
|
grid.Widgets.Clear();
|
||||||
_mainWidget.ScrOverlay.ResetScroll();
|
_mainWidget.ScrOverlay.ResetScroll();
|
||||||
foreach (var item in spriteSheet.index.Where(t=>String.IsNullOrWhiteSpace(e) || t.Key.ToLower().Contains(e.ToLower())))
|
foreach (var item in spriteSheet.index.Where(t => String.IsNullOrWhiteSpace(e) || t.Key.ToLower().Contains(e.ToLower())))
|
||||||
{
|
{
|
||||||
var tileButton = new ImageButton { Image = new TextureRegion(spriteSheet.Texture, item.Value), GridColumn = indexY, GridRow = indexX, Id = item.Key, Width = 40, Height = 40 };
|
var tileButton = new ImageButton { Image = new TextureRegion(spriteSheet.Texture, item.Value), GridColumn = indexY, GridRow = indexX, Id = item.Key, Width = 40, Height = 40 };
|
||||||
tileButton.Click += eventAction;
|
tileButton.Click += eventAction;
|
||||||
tileButton.MouseMoved+=OnTileButtonTouchEntered;
|
tileButton.MouseMoved += OnTileButtonTouchEntered;
|
||||||
tileButton.MouseLeft += OnTileButtonTouchLeft;
|
tileButton.MouseLeft += OnTileButtonTouchLeft;
|
||||||
grid.Widgets.Add(tileButton);
|
grid.Widgets.Add(tileButton);
|
||||||
indexY++;
|
indexY++;
|
||||||
|
@ -173,20 +173,20 @@ namespace Sledgemapper
|
||||||
|
|
||||||
private void OnTileButtonTouchLeft(object sender, EventArgs e)
|
private void OnTileButtonTouchLeft(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
_desktop.HideContextMenu();
|
_desktop.HideContextMenu();
|
||||||
_lblOverlayName.Visible=false;
|
_lblOverlayName.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Label _lblOverlayName;
|
Label _lblOverlayName;
|
||||||
|
|
||||||
private void OnTileButtonTouchEntered(object sender, EventArgs e)
|
private void OnTileButtonTouchEntered(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
var mouseState = Mouse.GetState().Position;
|
var mouseState = Mouse.GetState().Position;
|
||||||
mouseState.X+=10;
|
mouseState.X += 10;
|
||||||
mouseState.Y+=10;
|
mouseState.Y += 10;
|
||||||
_lblOverlayName.Visible=true;
|
_lblOverlayName.Visible = true;
|
||||||
_lblOverlayName.Text=((ImageButton)sender).Id;
|
_lblOverlayName.Text = ((ImageButton)sender).Id;
|
||||||
_desktop.ShowContextMenu(_lblOverlayName, mouseState);
|
_desktop.ShowContextMenu(_lblOverlayName, mouseState);
|
||||||
// _lblOverlayName.true;
|
// _lblOverlayName.true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,10 +222,10 @@ mouseState.Y+=10;
|
||||||
|
|
||||||
_spriteSheet = new SpriteSheet();
|
_spriteSheet = new SpriteSheet();
|
||||||
_spriteSheet.LoadContent(Content);
|
_spriteSheet.LoadContent(Content);
|
||||||
_lblOverlayName = new Label();
|
_lblOverlayName = new Label();
|
||||||
_lblOverlayName.Background=new SolidBrush(Color.SlateGray);
|
_lblOverlayName.Background = new SolidBrush(Color.SlateGray);
|
||||||
_lblOverlayName.Padding=new Myra.Graphics2D.Thickness(4);
|
_lblOverlayName.Padding = new Myra.Graphics2D.Thickness(4);
|
||||||
|
|
||||||
AddItemToToolGrid(_mainWidget.GridWalls, OnWallButtonClicked, _wallsContent);
|
AddItemToToolGrid(_mainWidget.GridWalls, OnWallButtonClicked, _wallsContent);
|
||||||
AddItemToToolGrid(_mainWidget.GridOverlays, OnOverlayButtonClicked, _spriteSheet);
|
AddItemToToolGrid(_mainWidget.GridOverlays, OnOverlayButtonClicked, _spriteSheet);
|
||||||
|
|
||||||
|
@ -262,7 +262,7 @@ _lblOverlayName.Padding=new Myra.Graphics2D.Thickness(4);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
AddItemToToolGrid(_mainWidget.GridOverlays, OnOverlayButtonClicked, _spriteSheet, e.NewValue);
|
AddItemToToolGrid(_mainWidget.GridOverlays, OnOverlayButtonClicked, _spriteSheet, e.NewValue);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnBtnToolbarDeleteClicked(object sender, EventArgs e)
|
private void OnBtnToolbarDeleteClicked(object sender, EventArgs e)
|
||||||
|
@ -796,25 +796,94 @@ _lblOverlayName.Padding=new Myra.Graphics2D.Thickness(4);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var ffont = _fonts.FirstOrDefault(m => int.Parse(m.Key.Replace("font", "")) > _state.TileSize / 3).Value ?? _fonts.Last().Value;
|
||||||
|
var fscale = 1.2f;
|
||||||
|
var width = Math.Abs((endposX - posX));
|
||||||
|
var height = Math.Abs((posY - endposY));
|
||||||
|
var tilesWidth = width / (double)_state.TileSize;
|
||||||
|
var tilesHeight = height / (double)_state.TileSize;
|
||||||
|
tilesWidth = Math.Round(tilesWidth * 2, MidpointRounding.AwayFromZero) / 2;
|
||||||
|
tilesHeight = Math.Round(tilesHeight * 2, MidpointRounding.AwayFromZero) / 2;
|
||||||
|
var xmeasure = ffont.MeasureString($"{tilesWidth}");
|
||||||
|
var ymeasure = ffont.MeasureString($"{tilesHeight}");
|
||||||
|
float widthX = 0, widthY = 0, heightX = 0, heightY = 0;
|
||||||
|
|
||||||
|
Rectangle area = new Rectangle();
|
||||||
if (posX != endposX && posY != endposY)
|
if (posX != endposX && posY != endposY)
|
||||||
{
|
{
|
||||||
|
|
||||||
if ((posX > endposX && posY > endposY) || (posX < endposX && posY < endposY))
|
if ((posX > endposX && posY > endposY) || (posX < endposX && posY < endposY))
|
||||||
{
|
{
|
||||||
_spriteBatch.Draw(_transparentRedRectangle, new Rectangle(posX, posY, endposX - posX, endposY - posY), null, Color.White, 0, new Vector2(0, 0), SpriteEffects.None, 1);
|
area = new Rectangle(posX, posY, endposX - posX, endposY - posY);
|
||||||
|
|
||||||
|
if (posX > endposX && posY > endposY)
|
||||||
|
{
|
||||||
|
widthX = endposX + (width / 2) - xmeasure.X / 2;
|
||||||
|
widthY = endposY - ymeasure.Y * 1.2f;
|
||||||
|
|
||||||
|
heightX = posX + xmeasure.X / 2;
|
||||||
|
heightY = endposY + (height / 2) - ymeasure.Y / 2;
|
||||||
|
}
|
||||||
|
else if (posX < endposX && posY < endposY)
|
||||||
|
{
|
||||||
|
widthX = posX + (width / 2) - xmeasure.X / 2;
|
||||||
|
widthY = posY - ymeasure.Y * 1.2f;
|
||||||
|
|
||||||
|
heightX = endposX + xmeasure.X / 2;
|
||||||
|
heightY = posY + (height / 2) - ymeasure.Y / 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (endposY < posY)
|
if (endposY < posY)
|
||||||
{
|
{
|
||||||
_spriteBatch.Draw(_transparentRedRectangle, new Rectangle(posX, endposY, endposX - posX, posY - endposY), null, Color.White, 0, new Vector2(0, 0), SpriteEffects.None, 1);
|
area = new Rectangle(posX, endposY, endposX - posX, posY - endposY);
|
||||||
|
|
||||||
|
widthX = posX + (width / 2) - xmeasure.X / 2;
|
||||||
|
widthY = endposY - ymeasure.Y * 1.2f;
|
||||||
|
|
||||||
|
heightX = endposX + xmeasure.X / 2;
|
||||||
|
heightY = endposY + (height / 2) - ymeasure.Y / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (endposX < posX)
|
if (endposX < posX)
|
||||||
{
|
{
|
||||||
_spriteBatch.Draw(_transparentRedRectangle, new Rectangle(endposX, posY, posX - endposX, endposY - posY), null, Color.White, 0, new Vector2(0, 0), SpriteEffects.None, 1);
|
area = new Rectangle(endposX, posY, posX - endposX, endposY - posY);
|
||||||
|
|
||||||
|
widthX = endposX + (width / 2) - xmeasure.X / 2;
|
||||||
|
widthY = posY - ymeasure.Y * 1.2f;
|
||||||
|
|
||||||
|
heightX = posX + xmeasure.X / 2;
|
||||||
|
heightY = posY + (height / 2) - ymeasure.Y / 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_spriteBatch.Draw(_transparentRedRectangle, area, null, Color.White, 0, new Vector2(0, 0), SpriteEffects.None, 1);
|
||||||
|
|
||||||
|
_spriteBatch.DrawString(ffont,
|
||||||
|
$"{tilesWidth}",
|
||||||
|
new Vector2(
|
||||||
|
widthX,
|
||||||
|
widthY
|
||||||
|
),
|
||||||
|
Color.Red,
|
||||||
|
0,
|
||||||
|
Vector2.Zero,
|
||||||
|
fscale,
|
||||||
|
SpriteEffects.None,
|
||||||
|
0);
|
||||||
|
|
||||||
|
_spriteBatch.DrawString(ffont,
|
||||||
|
$"{tilesHeight}",
|
||||||
|
new Vector2(
|
||||||
|
heightX, heightY
|
||||||
|
),
|
||||||
|
Color.Red,
|
||||||
|
0,
|
||||||
|
Vector2.Zero,
|
||||||
|
fscale,
|
||||||
|
SpriteEffects.None,
|
||||||
|
0);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue