private void DispatchGraph(SharedAiDebug.RequestPathfindingGraphMessage message) { var pathfindingSystem = EntitySystemManager.GetEntitySystem <PathfindingSystem>(); var mapManager = IoCManager.Resolve <IMapManager>(); var result = new Dictionary <int, List <Vector2> >(); var idx = 0; foreach (var(gridId, chunks) in pathfindingSystem.Graph) { var gridManager = mapManager.GetGrid(gridId); foreach (var chunk in chunks.Values) { var nodes = new List <Vector2>(); foreach (var node in chunk.Nodes) { var worldTile = gridManager.GridTileToWorldPos(node.TileRef.GridIndices); nodes.Add(worldTile); } result.Add(idx, nodes); idx++; } } var systemMessage = new SharedAiDebug.PathfindingGraphMessage(result); EntityManager.EntityNetManager.SendSystemNetworkMessage(systemMessage); }
private void EnableMode(PathfindingDebugMode tooltip) { _modes |= tooltip; if (_modes != 0) { EnableOverlay(); } _overlay.Modes = _modes; if (tooltip == PathfindingDebugMode.Graph) { var systemMessage = new SharedAiDebug.RequestPathfindingGraphMessage(); EntityManager.EntityNetManager.SendSystemNetworkMessage(systemMessage); } }
private void EnableMode(PathfindingDebugMode tooltip) { _modes |= tooltip; if (_modes != 0) { EnableOverlay(); } _overlay.Modes = _modes; if (tooltip == PathfindingDebugMode.Graph) { var systemMessage = new SharedAiDebug.RequestPathfindingGraphMessage(); EntityManager.EntityNetManager.SendSystemNetworkMessage(systemMessage); } // TODO: Request region graph, although the client system messages didn't seem to be going through anymore // So need further investigation. }