public void QueryGlobalMapPath(Iocp.TcpConnect connect, UInt16 serialId, ulong planesId, ulong mapSourceId, ulong roleId, SlimDX.Vector3 from, SlimDX.Vector3 to, bool bClear) { PFPlanes planes; if (PlanesDic.TryGetValue(planesId, out planes) == false) { planes = new PFPlanes(); planes.PlanesId = planesId; PlanesDic.Add(planesId, planes); var thread = SelectPFThread(); thread.PushPlanes(planes); } PFMap map = planes.GetMap(mapSourceId); PFUnit unit = map.GetUnit(roleId); PFQuery query = new PFQuery(); query.FromPt = from; query.ToPt = to; query.Connect = connect; query.SerialId = serialId; unit.AddQuery(query, bClear); }
public void PushPlanes(PFPlanes planes) { lock (this) { foreach (var i in ExecutePlanes) { if (i.PlanesId == planes.PlanesId) { return; } } ExecutePlanes.Add(planes); } }