/// <summary> /// 获取区域指定类型的轨道 /// </summary> /// <param name="area"></param> /// <param name="totracktype"></param> /// <returns></returns> public List <Track> GetTrackInTypeFree(ushort area, TrackTypeE totracktype) { List <Track> list = TrackList.FindAll(c => c.area == area && c.Type == totracktype && c.TrackStatus != TrackStatusE.停用); if (list.Count > 0) { list.Sort((x, y) => x.stock_status.CompareTo(y.stock_status)); } return(list); }
public void AddAreaFerryTrackList(uint areaid, uint toareaid, Device ferry) { TrackTypeE tracktype = TrackTypeE.储砖_入; TrackTypeE tiletrtype = TrackTypeE.砖轨道; if (ferry.Type == DeviceTypeE.摆渡) { tracktype = TrackTypeE.储砖_出; tiletrtype = TrackTypeE.砖轨道; } List <uint> trackids = PubMaster.Track.GetAreaTrackIds(areaid, tracktype); trackids.AddRange(PubMaster.Track.GetAreaTrackIds(areaid, TrackTypeE.储砖_出入)); trackids.AddRange(PubMaster.Track.GetAreaTrackIds(areaid, tiletrtype)); ushort prior = (ushort)AreaDevTraList.Count(c => c.area_id == toareaid && c.device_id == ferry.id); prior++; AreaDeviceTrack areatradev; foreach (uint trackid in trackids) { if (AreaDevTraList.Exists(c => c.area_id == toareaid && c.device_id == ferry.id && c.track_id == trackid)) { continue; } areatradev = new AreaDeviceTrack() { area_id = toareaid, device_id = ferry.id, track_id = trackid, prior = prior, }; PubMaster.Mod.AreaSql.AddAreaDeviceTrack(areatradev); prior += 1; } Refresh(false, false, false, true); }
public List <uint> GetAreaTrackIds(uint areaid, TrackTypeE typeE) { List <AreaTrack> areaTracks = AreaTraList.FindAll(c => c.area_id == areaid && c.TrackType == typeE); return(areaTracks.Select(c => c.track_id).ToList()); }
public bool IsTrackType(uint traid, TrackTypeE type) { return(TrackList.Exists(c => c.id == traid && c.Type == type)); }
internal List <uint> GetAreaTrackIds(uint areaid, TrackTypeE type) { return(TrackList.FindAll(c => c.area == areaid && c.Type == type).Select(c => c.id).ToList()); }