fixe build mygame
This commit is contained in:
parent
0b0b33920c
commit
81a7c49605
2 changed files with 51 additions and 50 deletions
|
@ -12,6 +12,7 @@ using System.Collections.Generic;
|
|||
using System.IO;
|
||||
using System.Linq;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
|
||||
namespace MyGame
|
||||
{
|
||||
|
@ -63,9 +64,10 @@ namespace MyGame
|
|||
// .WithUrl("http://hub.michelescandura.com:5000/ChatHub")
|
||||
.Build();
|
||||
|
||||
connection.On<List<Tile>>("UpdateMap", (map) =>
|
||||
connection.On<ConcurrentDictionary<string, Tile>>("UpdateMap", (map) =>
|
||||
{
|
||||
_sessionData.Map = map;
|
||||
|
||||
});
|
||||
|
||||
connection.On<Player>("PlayerUpdate", (player) =>
|
||||
|
@ -79,35 +81,35 @@ namespace MyGame
|
|||
|
||||
connection.On<Tile>("DeleteTile", (tile) =>
|
||||
{
|
||||
_sessionData.Map.Remove(tile);
|
||||
_sessionData.Map.Remove(tile.ToString(), out var rtile);
|
||||
});
|
||||
|
||||
connection.On<Wall>("DeleteWall", (tile) =>
|
||||
{
|
||||
_sessionData.Walls.Remove(tile);
|
||||
_sessionData.Walls.Remove(tile.ToString(), out var rtile);
|
||||
});
|
||||
|
||||
connection.On<Overlay>("DeleteOverlay", (tile) =>
|
||||
{
|
||||
_sessionData.Overlays.Remove(tile);
|
||||
_sessionData.Overlays.Remove(tile.ToString(), out var rtile);
|
||||
});
|
||||
|
||||
connection.On<Tile>("NewTile", (tile) =>
|
||||
connection.On<Tile>("NewTile", (tile) =>
|
||||
{
|
||||
_sessionData.Map.Remove(tile);
|
||||
_sessionData.Map.Add(tile);
|
||||
_sessionData.Map.Remove(tile.ToString(), out var rtile);
|
||||
_sessionData.Map.TryAdd(tile.ToString(), tile);
|
||||
});
|
||||
|
||||
connection.On<Wall>("NewWall", (tile) =>
|
||||
{
|
||||
_sessionData.Walls.Remove(tile);
|
||||
_sessionData.Walls.Add(tile);
|
||||
_sessionData.Walls.Remove(tile.ToString(), out var rtile);
|
||||
_sessionData.Walls.TryAdd(tile.ToString(), tile);
|
||||
});
|
||||
|
||||
connection.On<Overlay>("NewOverlay", (tile) =>
|
||||
{
|
||||
_sessionData.Overlays.Remove(tile);
|
||||
_sessionData.Overlays.Add(tile);
|
||||
_sessionData.Overlays.Remove(tile.ToString(), out var rtile);
|
||||
_sessionData.Overlays.TryAdd(tile.ToString(), tile);
|
||||
});
|
||||
|
||||
|
||||
|
@ -643,7 +645,7 @@ namespace MyGame
|
|||
return;
|
||||
}
|
||||
GraphicsDevice.Clear(Color.DarkGray);
|
||||
var sessionData = _sessionData.Copy<SessionData>();
|
||||
var sessionData = _sessionData;
|
||||
|
||||
// TODO: Add your drawing code here
|
||||
var visibleTilesX = GraphicsDevice.Viewport.Width / _tileSize + 1;
|
||||
|
@ -686,7 +688,7 @@ namespace MyGame
|
|||
Color.Black);
|
||||
}
|
||||
|
||||
foreach (var tile in sessionData.Map)
|
||||
foreach (var tile in sessionData.Map.Values)
|
||||
{
|
||||
|
||||
var content = Content.Load<Texture2D>($"tiles/{tile.ID}");
|
||||
|
@ -699,7 +701,7 @@ namespace MyGame
|
|||
null, Color.White, MathHelper.ToRadians(90 * tile.Rotation), new Vector2(content.Width / 2, content.Height / 2), ((float)_tileSize - 1) / content.Width, SpriteEffects.None, 0);
|
||||
}
|
||||
|
||||
foreach (var wall in sessionData.Walls)
|
||||
foreach (var wall in sessionData.Walls.Values)
|
||||
{
|
||||
|
||||
var content = Content.Load<Texture2D>($"walls/{wall.ID}");
|
||||
|
@ -721,7 +723,7 @@ namespace MyGame
|
|||
|
||||
}
|
||||
|
||||
foreach (var tile in sessionData.Overlays)
|
||||
foreach (var tile in sessionData.Overlays.Values)
|
||||
{
|
||||
|
||||
var content = Content.Load<Texture2D>($"overlays/{tile.ID}");
|
||||
|
@ -901,115 +903,114 @@ namespace MyGame
|
|||
|
||||
private void SetTile(string tileId)
|
||||
{
|
||||
var tileExist = _sessionData.Map.Any(m => m.X == _selectedTile.X && m.Y == _selectedTile.Y);
|
||||
var tileExist = _sessionData.Map.TryGetValue(_selectedTile.ToString(), out var rtile);
|
||||
if (tileExist)
|
||||
{
|
||||
var tile = _sessionData.Map.First(m => m.X == _selectedTile.X && m.Y == _selectedTile.Y);
|
||||
var index = _sessionData.Map.IndexOf(tile);
|
||||
_sessionData.Map.RemoveAt(index);
|
||||
var get = _sessionData.Map.TryGetValue(_selectedTile.ToString(), out var tile);
|
||||
|
||||
_sessionData.Map.TryRemove(tile.ToString(), out var rrtile);
|
||||
if (tile.ID == tileId)
|
||||
{
|
||||
var newTile = new Tile { X = _selectedTile.X, Y = _selectedTile.Y, ID = tileId, Rotation = (tile.Rotation + 1) % 4 };
|
||||
_sessionData.Map.Add(newTile);
|
||||
_sessionData.Map.TryAdd(newTile.ToString(), newTile);
|
||||
connection?.InvokeAsync("NewTile", _session, newTile);
|
||||
}
|
||||
else
|
||||
{
|
||||
var newTile = new Tile { X = _selectedTile.X, Y = _selectedTile.Y, ID = tileId };
|
||||
_sessionData.Map.Add(newTile);
|
||||
_sessionData.Map.TryAdd(newTile.ToString(), newTile);
|
||||
connection?.InvokeAsync("NewTile", _session, newTile);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var newTile = new Tile { X = _selectedTile.X, Y = _selectedTile.Y, ID = tileId };
|
||||
_sessionData.Map.Add(newTile);
|
||||
_sessionData.Map.TryAdd(newTile.ToString(), newTile);
|
||||
connection?.InvokeAsync("NewTile", _session, newTile);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetOverlay(string tileId)
|
||||
{
|
||||
var overlayExist = _sessionData.Overlays.Any(m => m.X == _selectedOverlay.X && m.Y == _selectedOverlay.Y && m.Intersection == _selectedOverlay.Intersection);
|
||||
var overlayExist = _sessionData.Overlays.TryGetValue(_selectedOverlay.ToString(), out var tile);
|
||||
if (overlayExist)
|
||||
{
|
||||
var overlay = _sessionData.Overlays.First(m => m.X == _selectedOverlay.X && m.Y == _selectedOverlay.Y && m.Intersection == _selectedOverlay.Intersection);
|
||||
var index = _sessionData.Overlays.IndexOf(overlay);
|
||||
_sessionData.Overlays.RemoveAt(index);
|
||||
var exist = _sessionData.Overlays.TryGetValue(_selectedOverlay.ToString(), out var overlay);
|
||||
_sessionData.Overlays.TryRemove(tile.ToString(), out var rrtile);
|
||||
if (overlay.ID == tileId)
|
||||
{
|
||||
var newOverlay = new Overlay { X = overlay.X, Y = overlay.Y, ID = tileId, Intersection = overlay.Intersection, Rotation = (overlay.Rotation + 1) % 4 };
|
||||
_sessionData.Overlays.Add(newOverlay);
|
||||
_sessionData.Overlays.TryAdd(newOverlay.ToString(), newOverlay);
|
||||
connection?.InvokeAsync("NewOverlay", _session, newOverlay);
|
||||
}
|
||||
else
|
||||
{
|
||||
var newOverlay = new Overlay { X = _selectedOverlay.X, Y = _selectedOverlay.Y, ID = tileId, Intersection = _selectedOverlay.Intersection };
|
||||
_sessionData.Overlays.Add(newOverlay);
|
||||
_sessionData.Overlays.TryAdd(newOverlay.ToString(), newOverlay);
|
||||
connection?.InvokeAsync("NewOverlay", _session, newOverlay);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var newOverlay = new Overlay { X = _selectedOverlay.X, Y = _selectedOverlay.Y, ID = tileId, Intersection = _selectedOverlay.Intersection };
|
||||
_sessionData.Overlays.Add(newOverlay);
|
||||
_sessionData.Overlays.TryAdd(newOverlay.ToString(), newOverlay);
|
||||
connection?.InvokeAsync("NewOverlay", _session, newOverlay);
|
||||
}
|
||||
}
|
||||
|
||||
private void DeleteWall()
|
||||
{
|
||||
var tileExist = _sessionData.Walls.Any(m => m.X == _selectedWall.X && m.Y == _selectedWall.Y && m.Rotation == _selectedWall.Rotation);
|
||||
var tileExist = _sessionData.Walls.TryGetValue(_selectedWall.ToString(), out var wall);
|
||||
if (tileExist)
|
||||
{
|
||||
var wall = _sessionData.Walls.First(m => m.X == _selectedWall.X && m.Y == _selectedWall.Y && m.Rotation == _selectedWall.Rotation);
|
||||
var index = _sessionData.Walls.IndexOf(wall);
|
||||
_sessionData.Walls.RemoveAt(index);
|
||||
//var wall = _sessionData.Walls.First(m => m.X == _selectedWall.X && m.Y == _selectedWall.Y && m.Rotation == _selectedWall.Rotation);
|
||||
//var index = _sessionData.Walls.IndexOf(wall);
|
||||
_sessionData.Walls.TryRemove(wall.ToString(), out var rwall);
|
||||
connection?.InvokeAsync("DeleteWall", _session, wall);
|
||||
}
|
||||
}
|
||||
|
||||
private void DeleteOverlay()
|
||||
{
|
||||
var tileExist = _sessionData.Overlays.Any(m => m.X == _selectedOverlay.X && m.Y == _selectedOverlay.Y && m.Intersection == _selectedOverlay.Intersection);
|
||||
var tileExist = _sessionData.Overlays.TryGetValue(_selectedOverlay.ToString(), out var overlay);
|
||||
if (tileExist)
|
||||
{
|
||||
var wall = _sessionData.Overlays.First(m => m.X == _selectedOverlay.X && m.Y == _selectedOverlay.Y && m.Intersection == _selectedOverlay.Intersection);
|
||||
var index = _sessionData.Overlays.IndexOf(wall);
|
||||
_sessionData.Overlays.RemoveAt(index);
|
||||
connection?.InvokeAsync("DeleteOverlay", _session, wall);
|
||||
//var wall = _sessionData.Overlays.First(m => m.X == _selectedOverlay.X && m.Y == _selectedOverlay.Y && m.Intersection == _selectedOverlay.Intersection);
|
||||
//var index = _sessionData.Overlays.IndexOf(wall);
|
||||
_sessionData.Overlays.TryRemove(overlay.ToString(), out var roverlay);
|
||||
connection?.InvokeAsync("DeleteOverlay", _session, overlay);
|
||||
}
|
||||
}
|
||||
|
||||
private void DeleteTile()
|
||||
{
|
||||
var tileExist = _sessionData.Map.Any(m => m.X == _selectedTile.X && m.Y == _selectedTile.Y);
|
||||
var tileExist = _sessionData.Map.TryGetValue(_selectedTile.ToString(), out var tile);
|
||||
if (tileExist)
|
||||
{
|
||||
var tile = _sessionData.Map.First(m => m.X == _selectedTile.X && m.Y == _selectedTile.Y);
|
||||
var index = _sessionData.Map.IndexOf(tile);
|
||||
_sessionData.Map.RemoveAt(index);
|
||||
// var tile = _sessionData.Map.First(m => m.X == _selectedTile.X && m.Y == _selectedTile.Y);
|
||||
// var index = _sessionData.Map.IndexOf(tile);
|
||||
_sessionData.Map.TryRemove(tile.ToString(), out var rtile);
|
||||
connection?.InvokeAsync("DeleteTile", _session, tile);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetWall(string wallId)
|
||||
{
|
||||
var tileExist = _sessionData.Walls.Any(m => m.X == _selectedWall.X && m.Y == _selectedWall.Y && m.Rotation == _selectedWall.Rotation);
|
||||
var tileExist = _sessionData.Walls.TryGetValue(_selectedWall.ToString(), out var wall);
|
||||
if (tileExist)
|
||||
{
|
||||
var wall = _sessionData.Walls.First(m => m.X == _selectedWall.X && m.Y == _selectedWall.Y && m.Rotation == _selectedWall.Rotation);
|
||||
var index = _sessionData.Walls.IndexOf(wall);
|
||||
_sessionData.Walls.RemoveAt(index);
|
||||
// var wall = _sessionData.Walls.First(m => m.X == _selectedWall.X && m.Y == _selectedWall.Y && m.Rotation == _selectedWall.Rotation);
|
||||
// var index = _sessionData.Walls.IndexOf(wall);
|
||||
_sessionData.Walls.TryRemove(wall.ToString(), out var rwall);
|
||||
var newWall = new Wall { X = _selectedWall.X, Y = _selectedWall.Y, ID = wallId, Rotation = _selectedWall.Rotation };
|
||||
_sessionData.Walls.Add(newWall);
|
||||
_sessionData.Walls.TryAdd(newWall.ToString(), newWall);
|
||||
connection?.InvokeAsync("NewWall", _session, newWall);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
var newWall = new Wall { X = _selectedWall.X, Y = _selectedWall.Y, ID = wallId, Rotation = _selectedWall.Rotation };
|
||||
_sessionData.Walls.Add(newWall);
|
||||
_sessionData.Walls.TryAdd(newWall.ToString(), newWall);
|
||||
connection?.InvokeAsync("NewWall", _session, newWall);
|
||||
|
||||
//connection?.InvokeAsync("SendMessage", $"{_selectedTile.X}:{_selectedTile.Y}", tileId.ToString(), _session);
|
||||
|
|
|
@ -10,14 +10,14 @@ namespace MyGame
|
|||
Map = new ConcurrentDictionary<string, Tile>();
|
||||
Overlays = new ConcurrentDictionary<string, Overlay>();
|
||||
Walls = new ConcurrentDictionary<string, Wall>();
|
||||
Players = new ConcurrentDictionary<string, Player>();
|
||||
Players = new List< Player>();
|
||||
Colors = new List<string>();
|
||||
}
|
||||
public ConcurrentDictionary<string, Tile> Map { get; set; }
|
||||
public ConcurrentDictionary<string, Wall> Walls { get; set; }
|
||||
public ConcurrentDictionary<string, Overlay> Overlays { get; set; }
|
||||
public bool IsValid { get; set; }
|
||||
public ConcurrentDictionary<string, Player> Players { get; set; }
|
||||
public List< Player> Players { get; set; }
|
||||
public List<string> Colors;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue