progress
This commit is contained in:
parent
b66612ab27
commit
f9c6b1c02f
4 changed files with 207 additions and 185 deletions
|
@ -190,7 +190,7 @@ namespace Sledgemapper.Shared.Entities
|
||||||
}
|
}
|
||||||
|
|
||||||
var lineExist = Lines.TryGetValue(line.ToString(), out var tile);
|
var lineExist = Lines.TryGetValue(line.ToString(), out var tile);
|
||||||
var newLine = new Line { X = line.X, Y = line.Y,EndX=line.EndX, EndY=line.EndY };
|
var newLine = new Line { Start=line.Start, End=line.End};
|
||||||
if (lineExist)
|
if (lineExist)
|
||||||
{
|
{
|
||||||
Lines.TryRemove(line.ToString(), out var _);
|
Lines.TryRemove(line.ToString(), out var _);
|
||||||
|
|
|
@ -19,12 +19,13 @@
|
||||||
|
|
||||||
public class Line : BaseMapEntity
|
public class Line : BaseMapEntity
|
||||||
{
|
{
|
||||||
public int EndX { get; set; }
|
public SnapPoint Start { get; set; }
|
||||||
public int EndY { get; set; }
|
public SnapPoint End { get; set; }
|
||||||
|
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return $"{X}_{Y}_{EndX}_{EndY}";
|
return $"{Start.X}_{Start.Y}_{Start.Index}_{End.X}_{End.Y}_{End.Index}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -151,24 +151,24 @@ namespace Sledgemapper
|
||||||
|
|
||||||
private void OnBtnToolbarWallClicked(object sender, EventArgs e)
|
private void OnBtnToolbarWallClicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
_state.InsertMode=InsertMode.NewWall;
|
_state.InsertMode = InsertMode.NewWall;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnBtnToolbarTileClicked(object sender, EventArgs e)
|
private void OnBtnToolbarTileClicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
_state.InsertMode=InsertMode.NewTile;
|
_state.InsertMode = InsertMode.NewTile;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnBtnToolbarRoomClicked(object sender, EventArgs e)
|
private void OnBtnToolbarRoomClicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
_state.InsertMode=InsertMode.NewRoom;
|
_state.InsertMode = InsertMode.NewRoom;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnBtnToolbarLinClicked(object sender, EventArgs e)
|
private void OnBtnToolbarLinClicked(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
_state.InsertMode=InsertMode.NewLine;
|
_state.InsertMode = InsertMode.NewLine;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OneMenuFileSettingsSelected(object sender, EventArgs e)
|
private void OneMenuFileSettingsSelected(object sender, EventArgs e)
|
||||||
|
@ -361,18 +361,22 @@ namespace Sledgemapper
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (newState.IsKeyDown(Keys.LeftControl) && newState.IsKeyDown(Keys.LeftShift)
|
if (_state.InsertMode == InsertMode.NewLine && newState.IsKeyDown(Keys.LeftControl)
|
||||||
&& mouseState.LeftButton == ButtonState.Released
|
&& mouseState.LeftButton == ButtonState.Released
|
||||||
&& mouseState.LeftButton != oldMouseState.LeftButton)
|
&& mouseState.LeftButton != oldMouseState.LeftButton)
|
||||||
{
|
{
|
||||||
if (_state.LineStart is null)
|
if (_state.LineStart is null)
|
||||||
{
|
{
|
||||||
_state.LineStart = new Tile{X=_state.HoveredTile.X, Y=_state.HoveredTile.Y};
|
_state.LineStart = new SnapPoint { X = _state.SelectedSnapPoint.X, Y = _state.SelectedSnapPoint.Y, Index=_state.SelectedSnapPoint.Index };
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var line = new Line{X = _state.LineStart.X, Y = _state.LineStart.Y, EndX=_state.HoveredTile.X, EndY=_state.HoveredTile.Y};
|
var line = new Line
|
||||||
_state.LineStart=null;
|
{
|
||||||
|
Start = new SnapPoint { X = _state.LineStart.X, Y = _state.LineStart.Y, Index = _state.LineStart.Index },
|
||||||
|
End = new SnapPoint { X = _state.SelectedSnapPoint.X, Y = _state.SelectedSnapPoint.Y, Index = _state.SelectedSnapPoint.Index }
|
||||||
|
};
|
||||||
|
_state.LineStart = null;
|
||||||
_sessionData.NewLine(line);
|
_sessionData.NewLine(line);
|
||||||
|
|
||||||
|
|
||||||
|
@ -491,7 +495,7 @@ namespace Sledgemapper
|
||||||
_spriteBatch.Begin(transformMatrix: Matrix.CreateTranslation(_viewportCenter));
|
_spriteBatch.Begin(transformMatrix: Matrix.CreateTranslation(_viewportCenter));
|
||||||
|
|
||||||
DrawTiles();
|
DrawTiles();
|
||||||
DrawLines();
|
DrawLines();
|
||||||
DrawWalls();
|
DrawWalls();
|
||||||
DrawOverlays();
|
DrawOverlays();
|
||||||
DrawNotes();
|
DrawNotes();
|
||||||
|
@ -562,18 +566,44 @@ DrawLines();
|
||||||
|
|
||||||
DrawPlayers();
|
DrawPlayers();
|
||||||
|
|
||||||
var startWall = new Vector2(_state.SelectedWall.X * _state.TileSize, _state.SelectedWall.Y * _state.TileSize);
|
|
||||||
if (_state.InsertMode == InsertMode.Wall)
|
if (_state.InsertMode == InsertMode.Wall)
|
||||||
{
|
{
|
||||||
|
var startWall = new Vector2(_state.SelectedWall.X * _state.TileSize, _state.SelectedWall.Y * _state.TileSize);
|
||||||
_spriteBatch.DrawLine(startWall, _state.TileSize, MathHelper.ToRadians(90 * _state.SelectedWall.Rotation), Color.Red, 2);
|
_spriteBatch.DrawLine(startWall, _state.TileSize, MathHelper.ToRadians(90 * _state.SelectedWall.Rotation), Color.Red, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
var overlay = new Vector2(_state.SelectedOverlay.X * _state.TileSize, _state.SelectedOverlay.Y * _state.TileSize);
|
|
||||||
if (_state.InsertMode == InsertMode.Overlay && _state.SelectedOverlay.Intersection)
|
if (_state.InsertMode == InsertMode.Overlay && _state.SelectedOverlay.Intersection)
|
||||||
{
|
{
|
||||||
|
var overlay = new Vector2(_state.SelectedOverlay.X * _state.TileSize, _state.SelectedOverlay.Y * _state.TileSize);
|
||||||
_spriteBatch.DrawCircle(overlay, _state.TileSize / 3f, 100, Color.Red, 2);
|
_spriteBatch.DrawCircle(overlay, _state.TileSize / 3f, 100, Color.Red, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_state.InsertMode == InsertMode.NewLine && _state.SelectedSnapPoint != null)
|
||||||
|
{
|
||||||
|
var snapPoint = new Vector2(_state.SelectedSnapPoint.X * _state.TileSize, _state.SelectedSnapPoint.Y * _state.TileSize);
|
||||||
|
|
||||||
|
switch (_state.SelectedSnapPoint.Index)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
snapPoint.X += _state.TileSize / 2;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
snapPoint.Y += _state.TileSize / 2;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
snapPoint.Y += _state.TileSize / 2;
|
||||||
|
snapPoint.X += _state.TileSize / 2;
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
_spriteBatch.DrawCircle(snapPoint, _state.TileSize / 5f, 100, Color.Red, 2);
|
||||||
|
}
|
||||||
|
|
||||||
_spriteBatch.End();
|
_spriteBatch.End();
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -832,13 +862,13 @@ DrawLines();
|
||||||
{
|
{
|
||||||
var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
|
var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
|
||||||
|
|
||||||
var posX = tile.X * _state.TileSize ;
|
var posX = tile.X * _state.TileSize;
|
||||||
var posY = tile.Y * _state.TileSize ;
|
var posY = tile.Y * _state.TileSize;
|
||||||
|
|
||||||
var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
|
var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
|
||||||
whiteRectangle.SetData(new[] { _settings.OverlayTintColor });
|
whiteRectangle.SetData(new[] { _settings.OverlayTintColor });
|
||||||
|
|
||||||
_spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX-4, (int)posY-4, _state.TileSize+8, _state.TileSize+8),null,Color.White,0,Vector2.Zero,SpriteEffects.None, 1);
|
_spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX - 4, (int)posY - 4, _state.TileSize + 8, _state.TileSize + 8), null, Color.White, 0, Vector2.Zero, SpriteEffects.None, 1);
|
||||||
// _spriteBatch.DrawRectangle(new Rectangle((int)posX-4, (int)posY-4, _state.TileSize+8, _state.TileSize+8), _settings.OverlayTintColor,1);
|
// _spriteBatch.DrawRectangle(new Rectangle((int)posX-4, (int)posY-4, _state.TileSize+8, _state.TileSize+8), _settings.OverlayTintColor,1);
|
||||||
|
|
||||||
// _spriteBatch.Draw(content, new Vector2(posX, posY),
|
// _spriteBatch.Draw(content, new Vector2(posX, posY),
|
||||||
|
@ -850,14 +880,14 @@ DrawLines();
|
||||||
{
|
{
|
||||||
var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
|
var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
|
||||||
|
|
||||||
var posX = tile.X * _state.TileSize ;
|
var posX = tile.X * _state.TileSize;
|
||||||
var posY = tile.Y * _state.TileSize ;
|
var posY = tile.Y * _state.TileSize;
|
||||||
|
|
||||||
|
|
||||||
var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
|
var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
|
||||||
whiteRectangle.SetData(new[] { Color.White });
|
whiteRectangle.SetData(new[] { Color.White });
|
||||||
|
|
||||||
_spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX, (int)posY, _state.TileSize, _state.TileSize),null,Color.White,0,Vector2.Zero,SpriteEffects.None, 1);
|
_spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX, (int)posY, _state.TileSize, _state.TileSize), null, Color.White, 0, Vector2.Zero, SpriteEffects.None, 1);
|
||||||
|
|
||||||
// _spriteBatch.DrawRectangle(new Rectangle((int)posX, (int)posY, _state.TileSize, _state.TileSize), _settings.BackgroundColor,1);
|
// _spriteBatch.DrawRectangle(new Rectangle((int)posX, (int)posY, _state.TileSize, _state.TileSize), _settings.BackgroundColor,1);
|
||||||
|
|
||||||
|
@ -866,28 +896,68 @@ DrawLines();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawLines()
|
private void DrawLines()
|
||||||
{
|
{
|
||||||
|
var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
|
||||||
|
whiteRectangle.SetData(new[] { _settings.OverlayTintColor });
|
||||||
|
|
||||||
// border pass
|
// border pass
|
||||||
foreach (var tile in _sessionData.Lines.Values)
|
foreach (var tile in _sessionData.Lines.Values)
|
||||||
{
|
{
|
||||||
// var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
|
// var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
|
||||||
|
|
||||||
var posX = tile.X * _state.TileSize ;
|
var posX = tile.Start.X * _state.TileSize;
|
||||||
var posY = tile.Y * _state.TileSize ;
|
var posY = tile.Start.Y * _state.TileSize;
|
||||||
|
|
||||||
var endposX = tile.EndX * _state.TileSize ;
|
var endposX = tile.End.X * _state.TileSize;
|
||||||
var endposY = tile.EndY * _state.TileSize ;
|
var endposY = tile.End.Y * _state.TileSize;
|
||||||
|
|
||||||
|
switch (tile.Start.Index)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
posX += _state.TileSize / 2;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
posY += _state.TileSize / 2;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
posX += _state.TileSize / 2;
|
||||||
|
posY += _state.TileSize / 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (tile.End.Index)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
endposX += _state.TileSize / 2;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
endposY += _state.TileSize / 2;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
endposX += _state.TileSize / 2;
|
||||||
|
endposY += _state.TileSize / 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
|
// _spriteBatch.DrawLine(posX, posY, endposX, endposY, _settings.OverlayTintColor, _state.TileSize + 4);
|
||||||
whiteRectangle.SetData(new[] { _settings.OverlayTintColor });
|
|
||||||
|
|
||||||
_spriteBatch.DrawLine(posX, posY, endposX, endposY,_settings.OverlayTintColor,_state.TileSize+4);
|
|
||||||
|
|
||||||
|
|
||||||
|
var l = Math.Sqrt(Math.Pow(posX-endposX,2) + Math.Pow(posY-endposY,2));
|
||||||
|
|
||||||
|
var angle =Math.Atan2(posY-endposY, endposX-posX);
|
||||||
|
var angleRad = -(float)angle;//MathHelper.ToRadians((float)angle);
|
||||||
|
_spriteBatch.Draw(whiteRectangle, new Rectangle(posX, posY,(int)l , _state.TileSize+8), null,Color.White,angleRad,Vector2.Zero,SpriteEffects.None,1 );
|
||||||
// _spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX-4, (int)posY-4, _state.TileSize+8, _state.TileSize+8),null,Color.White,0,Vector2.Zero,SpriteEffects.None, 1);
|
// _spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX-4, (int)posY-4, _state.TileSize+8, _state.TileSize+8),null,Color.White,0,Vector2.Zero,SpriteEffects.None, 1);
|
||||||
// _spriteBatch.DrawRectangle(new Rectangle((int)posX-4, (int)posY-4, _state.TileSize+8, _state.TileSize+8), _settings.OverlayTintColor,1);
|
// _spriteBatch.DrawRectangle(new Rectangle((int)posX-4, (int)posY-4, _state.TileSize+8, _state.TileSize+8), _settings.OverlayTintColor,1);
|
||||||
|
|
||||||
|
@ -896,30 +966,63 @@ _spriteBatch.DrawLine(posX, posY, endposX, endposY,_settings.OverlayTintColor,_s
|
||||||
}
|
}
|
||||||
|
|
||||||
//inner pass
|
//inner pass
|
||||||
foreach (var tile in _sessionData.Lines.Values)
|
// foreach (var tile in _sessionData.Lines.Values)
|
||||||
{
|
// {
|
||||||
// var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
|
// // var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
|
||||||
|
|
||||||
var posX = tile.X * _state.TileSize ;
|
// var posX = tile.Start.X * _state.TileSize;
|
||||||
var posY = tile.Y * _state.TileSize ;
|
// var posY = tile.Start.Y * _state.TileSize;
|
||||||
|
|
||||||
var endposX = tile.EndX * _state.TileSize ;
|
// var endposX = tile.End.X * _state.TileSize;
|
||||||
var endposY = tile.EndY * _state.TileSize ;
|
// var endposY = tile.End.Y * _state.TileSize;
|
||||||
|
|
||||||
|
// switch (tile.Start.Index)
|
||||||
|
// {
|
||||||
|
// case 1:
|
||||||
|
// break;
|
||||||
|
// case 2:
|
||||||
|
// posX += _state.TileSize / 2;
|
||||||
|
// break;
|
||||||
|
// case 3:
|
||||||
|
// posY += _state.TileSize / 2;
|
||||||
|
|
||||||
|
// break;
|
||||||
|
// case 4:
|
||||||
|
// posX += _state.TileSize / 2;
|
||||||
|
// posY += _state.TileSize / 2;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// switch (tile.End.Index)
|
||||||
|
// {
|
||||||
|
// case 1:
|
||||||
|
// break;
|
||||||
|
// case 2:
|
||||||
|
// endposX += _state.TileSize / 2;
|
||||||
|
// break;
|
||||||
|
// case 3:
|
||||||
|
// endposY += _state.TileSize / 2;
|
||||||
|
|
||||||
|
// break;
|
||||||
|
// case 4:
|
||||||
|
// endposX += _state.TileSize / 2;
|
||||||
|
// endposY += _state.TileSize / 2;
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
|
||||||
|
// whiteRectangle.SetData(new[] { _settings.OverlayTintColor });
|
||||||
|
|
||||||
var whiteRectangle = new Texture2D(GraphicsDevice, 1, 1);
|
// _spriteBatch.DrawLine(posX, posY, endposX, endposY, Color.White, _state.TileSize);
|
||||||
whiteRectangle.SetData(new[] { _settings.OverlayTintColor });
|
|
||||||
|
|
||||||
_spriteBatch.DrawLine(posX, posY, endposX, endposY,Color.White,_state.TileSize);
|
// // _spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX-4, (int)posY-4, _state.TileSize+8, _state.TileSize+8),null,Color.White,0,Vector2.Zero,SpriteEffects.None, 1);
|
||||||
|
// // _spriteBatch.DrawRectangle(new Rectangle((int)posX-4, (int)posY-4, _state.TileSize+8, _state.TileSize+8), _settings.OverlayTintColor,1);
|
||||||
|
|
||||||
// _spriteBatch.Draw(whiteRectangle, new Rectangle((int)posX-4, (int)posY-4, _state.TileSize+8, _state.TileSize+8),null,Color.White,0,Vector2.Zero,SpriteEffects.None, 1);
|
// // _spriteBatch.Draw(content, new Vector2(posX, posY),
|
||||||
// _spriteBatch.DrawRectangle(new Rectangle((int)posX-4, (int)posY-4, _state.TileSize+8, _state.TileSize+8), _settings.OverlayTintColor,1);
|
// // null, Color.White, MathHelper.ToRadians(90 * tile.Rotation), new Vector2(content.Width / 2, content.Height / 2), ((float)_state.TileSize) / content.Width, SpriteEffects.None, 0);
|
||||||
|
// }
|
||||||
// _spriteBatch.Draw(content, new Vector2(posX, posY),
|
|
||||||
// null, Color.White, MathHelper.ToRadians(90 * tile.Rotation), new Vector2(content.Width / 2, content.Height / 2), ((float)_state.TileSize) / content.Width, SpriteEffects.None, 0);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DrawWalls()
|
private void DrawWalls()
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace Sledgemapper
|
||||||
public string CurrentTileId { get; set; }
|
public string CurrentTileId { get; set; }
|
||||||
public string CurrentWallId { get; set; }
|
public string CurrentWallId { get; set; }
|
||||||
public string CurrentOverlayId { get; set; }
|
public string CurrentOverlayId { get; set; }
|
||||||
public Tile LineStart { get; internal set; }
|
public SnapPoint LineStart { get; internal set; }
|
||||||
|
|
||||||
public InsertMode InsertMode;
|
public InsertMode InsertMode;
|
||||||
|
|
||||||
|
@ -68,136 +68,54 @@ namespace Sledgemapper
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool CheckDistance(Point p1, Point p2, float d)
|
||||||
|
{
|
||||||
|
return ((p1.X - p2.X) * (p1.X - p2.X) + (p1.Y - p2.Y) * (p1.Y - p2.Y)) < d * d;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void SelectClosestSnapPoint(Point mousePosition)
|
public void SelectClosestSnapPoint(Point mousePosition)
|
||||||
{
|
{
|
||||||
Math.DivRem(mousePosition.X, TileSize / 2, out var remx);
|
var distance = TileSize / 4;
|
||||||
Math.DivRem(mousePosition.Y, TileSize / 2, out var remy);
|
|
||||||
//var snaptileY=mousePosition.Y/(TileSize/2f);
|
|
||||||
Console.WriteLine($"{remx} _ {remy}");
|
|
||||||
|
|
||||||
if (remx == 0)
|
if (CheckDistance(mousePosition, new Point(HoveredTile.X * TileSize, HoveredTile.Y * TileSize), distance)) //x y
|
||||||
{
|
{
|
||||||
if (remy == 0)
|
SelectedSnapPoint = new SnapPoint { X = HoveredTile.X, Y = HoveredTile.Y, Index = 1 };
|
||||||
|
}
|
||||||
|
else if (CheckDistance(mousePosition, new Point(HoveredTile.X * TileSize + TileSize / 2, HoveredTile.Y * TileSize + TileSize / 2), distance)) // x+1/2, y+1/2
|
||||||
{
|
{
|
||||||
SelectedSnapPoint.X = HoveredTile.X;
|
SelectedSnapPoint = new SnapPoint { X = HoveredTile.X, Y = HoveredTile.Y, Index = 4 };
|
||||||
SelectedSnapPoint.Y = HoveredTile.Y;
|
|
||||||
SelectedSnapPoint.Index = 1;
|
|
||||||
}
|
}
|
||||||
else if (remy < 8)
|
else if (CheckDistance(mousePosition, new Point((HoveredTile.X + 1) * TileSize, HoveredTile.Y * TileSize), distance)) //x+1,y
|
||||||
{
|
{
|
||||||
SelectedSnapPoint.X = HoveredTile.X;
|
SelectedSnapPoint = new SnapPoint { X = HoveredTile.X + 1, Y = HoveredTile.Y, Index = 1 };
|
||||||
SelectedSnapPoint.Y = HoveredTile.Y;
|
|
||||||
SelectedSnapPoint.Index = 3;
|
|
||||||
}
|
}
|
||||||
else
|
else if (CheckDistance(mousePosition, new Point((HoveredTile.X + 1) * TileSize, (HoveredTile.Y + 1) * TileSize), distance)) //x+1, y+1
|
||||||
{
|
{
|
||||||
SelectedSnapPoint.X = HoveredTile.X;
|
SelectedSnapPoint = new SnapPoint { X = HoveredTile.X + 1, Y = HoveredTile.Y + 1, Index = 1 };
|
||||||
SelectedSnapPoint.Y = HoveredTile.Y+1;
|
|
||||||
SelectedSnapPoint.Index = 1;
|
|
||||||
}
|
}
|
||||||
}
|
else if (CheckDistance(mousePosition, new Point((HoveredTile.X) * TileSize, (HoveredTile.Y + 1) * TileSize), distance))//x,y+1
|
||||||
|
|
||||||
else if (remx <8)
|
|
||||||
{
|
{
|
||||||
if (remy == 0)
|
SelectedSnapPoint = new SnapPoint { X = HoveredTile.X, Y = HoveredTile.Y + 1, Index = 1 };
|
||||||
|
}
|
||||||
|
else if (CheckDistance(mousePosition, new Point(HoveredTile.X * TileSize, HoveredTile.Y * TileSize + TileSize / 2), distance)) //x, x+1/2
|
||||||
{
|
{
|
||||||
SelectedSnapPoint.X = HoveredTile.X;
|
SelectedSnapPoint = new SnapPoint { X = HoveredTile.X, Y = HoveredTile.Y, Index = 3 };
|
||||||
SelectedSnapPoint.Y = HoveredTile.Y;
|
|
||||||
SelectedSnapPoint.Index = 2;
|
|
||||||
}
|
}
|
||||||
else if (remy < 8)
|
else if (CheckDistance(mousePosition, new Point(HoveredTile.X * TileSize + TileSize / 2, HoveredTile.Y * TileSize ), distance)) // x+1/2,y
|
||||||
{
|
{
|
||||||
SelectedSnapPoint.X = HoveredTile.X;
|
SelectedSnapPoint = new SnapPoint { X = HoveredTile.X, Y = HoveredTile.Y, Index = 2 };
|
||||||
SelectedSnapPoint.Y = HoveredTile.Y;
|
|
||||||
SelectedSnapPoint.Index = 4;
|
|
||||||
}
|
}
|
||||||
else
|
else if (CheckDistance(mousePosition, new Point(HoveredTile.X * TileSize + TileSize, HoveredTile.Y * TileSize + TileSize / 2), distance)) // x+1/2, y+1/2
|
||||||
{
|
{
|
||||||
SelectedSnapPoint.X = HoveredTile.X;
|
SelectedSnapPoint = new SnapPoint { X = HoveredTile.X+1, Y = HoveredTile.Y, Index = 3 };
|
||||||
SelectedSnapPoint.Y = HoveredTile.Y+1;
|
|
||||||
SelectedSnapPoint.Index = 2;
|
|
||||||
}
|
}
|
||||||
}
|
else if (CheckDistance(mousePosition, new Point(HoveredTile.X * TileSize + TileSize / 2, HoveredTile.Y * TileSize + TileSize ), distance)) // x+1/2, y+1/2
|
||||||
else{
|
|
||||||
if (remy == 0)
|
|
||||||
{
|
{
|
||||||
SelectedSnapPoint.X = HoveredTile.X+1;
|
SelectedSnapPoint = new SnapPoint { X = HoveredTile.X, Y = HoveredTile.Y+1, Index = 2 };
|
||||||
SelectedSnapPoint.Y = HoveredTile.Y;
|
|
||||||
SelectedSnapPoint.Index = 1;
|
|
||||||
}
|
|
||||||
else if (remy < 8)
|
|
||||||
{
|
|
||||||
SelectedSnapPoint.X = HoveredTile.X+1;
|
|
||||||
SelectedSnapPoint.Y = HoveredTile.Y;
|
|
||||||
SelectedSnapPoint.Index = 3;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
SelectedSnapPoint.X = HoveredTile.X+1;
|
|
||||||
SelectedSnapPoint.Y = HoveredTile.Y+1;
|
|
||||||
SelectedSnapPoint.Index = 1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// SelectedSnapPoint.X = HoveredTile.X;
|
|
||||||
// SelectedSnapPoint.Y = HoveredTile.Y;
|
|
||||||
|
|
||||||
// var points = new List<Point>{
|
|
||||||
// new Point(HoveredTile.X * TileSize, HoveredTile.Y * TileSize),
|
|
||||||
// new Point((HoveredTile.X+1) * TileSize, HoveredTile.Y * TileSize),
|
|
||||||
// new Point((HoveredTile.X+1) * TileSize, (HoveredTile.Y+1) * TileSize),
|
|
||||||
// new Point(HoveredTile.X * TileSize, (HoveredTile.Y+1) * TileSize),
|
|
||||||
// new Point(HoveredTile.X * TileSize+TileSize/2, HoveredTile.Y * TileSize),
|
|
||||||
// new Point(HoveredTile.X * TileSize + TileSize/2, HoveredTile.Y * TileSize+ TileSize/2),
|
|
||||||
// new Point(HoveredTile.X * TileSize, HoveredTile.Y * TileSize+TileSize/2),
|
|
||||||
// new Point(HoveredTile.X * TileSize+TileSize , HoveredTile.Y * TileSize+TileSize/2),
|
|
||||||
// new Point(HoveredTile.X * TileSize+TileSize/2, HoveredTile.Y * TileSize+TileSize)
|
|
||||||
// };
|
|
||||||
|
|
||||||
// var q1 = Math.Pow(mousePosition.X - HoveredTile.X * TileSize, 2);
|
|
||||||
// var q2 = Math.Pow(HoveredTile.Y * TileSize - mousePosition.Y, 2);
|
|
||||||
// var s = Math.Sqrt(q1 + q2);
|
|
||||||
|
|
||||||
// if (s < TileSize / 3)
|
|
||||||
// {
|
|
||||||
// SelectedOverlay.Intersection = true;
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// q1 = Math.Pow(mousePosition.X - (HoveredTile.X + 1) * TileSize, 2);
|
|
||||||
// s = Math.Sqrt(q1 + q2);
|
|
||||||
// if (s < TileSize / 3)
|
|
||||||
// {
|
|
||||||
// SelectedOverlay.X = SelectedOverlay.X + 1;
|
|
||||||
// SelectedOverlay.Intersection = true;
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// //q1 = System.Math.Pow(mousePosition.X - (_hoveredTile.X + 1) * _tileSize, 2);
|
|
||||||
// q2 = Math.Pow((HoveredTile.Y + 1) * TileSize - mousePosition.Y, 2);
|
|
||||||
// s = Math.Sqrt(q1 + q2);
|
|
||||||
// if (s < TileSize / 3)
|
|
||||||
// {
|
|
||||||
// SelectedOverlay.X = SelectedOverlay.X + 1;
|
|
||||||
// SelectedOverlay.Y = SelectedOverlay.Y + 1;
|
|
||||||
// SelectedOverlay.Intersection = true;
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// q1 = Math.Pow(mousePosition.X - HoveredTile.X * TileSize, 2);
|
|
||||||
// q2 = Math.Pow((HoveredTile.Y + 1) * TileSize - mousePosition.Y, 2);
|
|
||||||
// s = Math.Sqrt(q1 + q2);
|
|
||||||
// if (s < TileSize / 3)
|
|
||||||
// {
|
|
||||||
// SelectedOverlay.X = SelectedOverlay.X;
|
|
||||||
// SelectedOverlay.Y = SelectedOverlay.Y + 1;
|
|
||||||
// SelectedOverlay.Intersection = true;
|
|
||||||
// return;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// SelectedOverlay.Intersection = false;
|
|
||||||
}
|
}
|
||||||
public void SelectOverlay(Point mousePosition)
|
public void SelectOverlay(Point mousePosition)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue