fixe build mygame

This commit is contained in:
Michele 2020-11-03 17:58:14 +00:00
parent 0b0b33920c
commit 81a7c49605
2 changed files with 51 additions and 50 deletions

View file

@ -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);

View file

@ -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;
}
}