private void CreateAndReloadMovieActors() { foreach (var person in ActorsEditList) { if (person.IsActorChecked) { var actor = Actors.FirstOrDefault(x => x.Id == person.Id); if (actor == null) { var movieActor = new PersonActorDetailModel() { Id = Guid.NewGuid(), MovieId = EditDetailModel.Id, ActorId = person.Id }; _movieActorRepository.Create(movieActor); Actors.Add(person); } } else { var actor = Actors.FirstOrDefault(x => x.Id == person.Id); if (actor != null) { _movieActorRepository.TryDeleteActorMovieRelation(EditDetailModel.Id, person.Id); DeleteActorInActorListById(person.Id); } } } }
private void DeleteActorInActorListById(Guid id) { var item = Actors.FirstOrDefault(a => a.Id == id); var index = Actors.IndexOf(item); if (index != -1) { Actors.RemoveAt(index); } }
private void UpdatePeopleListWithActors() { foreach (var person in ActorsEditList) { var actor = Actors.FirstOrDefault(x => x.Id == person.Id); if (actor != null) { person.IsActorChecked = true; } } }
protected override void OnDoubleClick(EventArgs e) { base.OnDoubleClick(e); var x = Actors.FirstOrDefault(a => a.Value.Location() == GetBrushLocation()); if (x.Key != null) { ActorDoubleClicked(x); } }
internal override void HandleActorPropertiesReplication(INetworkMessageIn msg) { int actorQuantity = msg.ReadInt(); for (int i = 0; i < actorQuantity; i++) { int id = msg.ReadInt(); var actor = Actors.FirstOrDefault(a => a.Id == id); actor?.Deserialize(msg); } }
internal override void HandleActorDestruction(INetworkMessageIn msg) { int id = msg.ReadInt(); var actor = Actors.FirstOrDefault(a => a.Id == id); if (actor == null) { return; } actor.IsMarkedToDestroy = true; actor.RemoteDestroyed(); }
internal override void HandleActorReplication(INetworkMessageIn msg) { int actorQuantity = msg.ReadInt(); for (int i = 0; i < actorQuantity; i++) { int id = msg.ReadInt(); int x = msg.ReadInt(); int y = msg.ReadInt(); var actor = Actors.FirstOrDefault(a => a.Id == id); actor?.SetLocation(x, y); } }
void Erase() { // Crash preventing var brushLocation = GetBrushLocation(); if (Map == null || brushLocation.X >= Map.MapSize.X || brushLocation.Y >= Map.MapSize.Y || brushLocation.X < 0 || brushLocation.Y < 0) { return; } currentTool = null; var key = Actors.FirstOrDefault(a => a.Value.Location() == brushLocation); if (key.Key != null) { Actors.Remove(key.Key); } if (Map.MapResources.Value[brushLocation].Type != 0) { Map.MapResources.Value[brushLocation] = new ResourceTile(0, 0); var ch = new int2(brushLocation.X / ChunkSize, brushLocation.Y / ChunkSize); if (Chunks.ContainsKey(ch)) { Chunks[ch].Dispose(); Chunks.Remove(ch); } } AfterChange(); ClearSelection(); }
public T?GetActor <T>() where T : Actor => (T)Actors.FirstOrDefault(x => x.GetType() == typeof(T)) !;
public Actor?GetActor(Type actorType) => Actors.FirstOrDefault(x => x.GetType() == actorType);
public Actor?GetActor(string actorName) => Actors.FirstOrDefault(x => x.ActorName == actorName);
protected override void OnPaint(PaintEventArgs e) { if (Map == null) { return; } if (TileSet == null) { return; } for (var u = 0; u < Map.MapSize.X; u += ChunkSize) { for (var v = 0; v < Map.MapSize.Y; v += ChunkSize) { var x = new int2(u / ChunkSize, v / ChunkSize); if (!Chunks.ContainsKey(x)) { Chunks[x] = RenderChunk(u / ChunkSize, v / ChunkSize); } var bmp = Chunks[x]; var drawX = TileSetRenderer.TileSize * (float)ChunkSize * (float)x.X * Zoom + Offset.X; var drawY = TileSetRenderer.TileSize * (float)ChunkSize * (float)x.Y * Zoom + Offset.Y; var sourceRect = new RectangleF(0, 0, bmp.Width, bmp.Height); var destRect = new RectangleF(drawX, drawY, bmp.Width * Zoom, bmp.Height * Zoom); e.Graphics.DrawImage(bmp, destRect, sourceRect, GraphicsUnit.Pixel); } } e.Graphics.DrawRectangle(CordonPen, Map.Bounds.Left * TileSetRenderer.TileSize * Zoom + Offset.X, Map.Bounds.Top * TileSetRenderer.TileSize * Zoom + Offset.Y, Map.Bounds.Width * TileSetRenderer.TileSize * Zoom, Map.Bounds.Height * TileSetRenderer.TileSize * Zoom); e.Graphics.DrawRectangle(SelectionPen, (SelectionStart.X * TileSetRenderer.TileSize * Zoom) + Offset.X, (SelectionStart.Y * TileSetRenderer.TileSize * Zoom) + Offset.Y, (SelectionEnd - SelectionStart).X * TileSetRenderer.TileSize * Zoom, (SelectionEnd - SelectionStart).Y * TileSetRenderer.TileSize * Zoom); if (IsPaste) { var loc = GetBrushLocation(); var width = Math.Abs((SelectionStart - SelectionEnd).X); var height = Math.Abs((SelectionStart - SelectionEnd).Y); e.Graphics.DrawRectangle(PastePen, (loc.X * TileSetRenderer.TileSize * Zoom) + Offset.X, (loc.Y * TileSetRenderer.TileSize * Zoom) + Offset.Y, width * (TileSetRenderer.TileSize * Zoom), height * (TileSetRenderer.TileSize * Zoom)); } foreach (var ar in Actors) { if (actorTemplates.ContainsKey(ar.Value.Type)) { DrawActor(e.Graphics, ar.Value.Location(), actorTemplates[ar.Value.Type], GetPaletteForActor(ar.Value)); } else { Console.WriteLine("Warning: Unknown or excluded actor: {0}", ar.Value.Type); } } if (ShowActorNames) { foreach (var ar in Actors) { if (!ar.Key.StartsWith("Actor")) // if it has a custom name { e.Graphics.DrawStringContrast(Font, ar.Key, (int)(ar.Value.Location().X *TileSetRenderer.TileSize *Zoom + Offset.X), (int)(ar.Value.Location().Y *TileSetRenderer.TileSize *Zoom + Offset.Y), Brushes.White, Brushes.Black); } } } if (ShowRuler && Zoom > 0.2) { for (var i = Map.Bounds.Left; i <= Map.Bounds.Right; i += 8) { if (i % 8 == 0) { var point = new PointF(i * TileSetRenderer.TileSize * Zoom + Offset.X, (Map.Bounds.Top - 8) * TileSetRenderer.TileSize * Zoom + Offset.Y); e.Graphics.DrawString((i - Map.Bounds.Left).ToString(), MarkerFont, TextBrush, point); } } for (var i = Map.Bounds.Top; i <= Map.Bounds.Bottom; i += 8) { if (i % 8 == 0) { var point = new PointF((Map.Bounds.Left - 8) * TileSetRenderer.TileSize * Zoom + Offset.X, i * TileSetRenderer.TileSize * Zoom + Offset.Y); e.Graphics.DrawString((i - Map.Bounds.Left).ToString(), MarkerFont, TextBrush, point); } } } if (currentTool != null) { currentTool.Preview(this, e.Graphics); } if (currentTool == null) { var x = Actors.FirstOrDefault(a => a.Value.Location() == GetBrushLocation()); if (x.Key != null && actorTemplates.ContainsKey(x.Value.Type)) { DrawActorBorder(e.Graphics, x.Value.Location(), actorTemplates[x.Value.Type]); } } }
public Fighter GetFighter(int id) { return(Actors.FirstOrDefault(entry => entry.Id == id)); }
public TActor GetActor <TActor>(int id) where TActor : T { return(Actors.FirstOrDefault(x => x.Id == id && x is TActor) as TActor); }
/// <summary> /// Finds the first actor who has no head (= is impersonated) or NULL. /// </summary> /// <returns></returns> public virtual IActor FindImpersonatedActor() { return(Actors.FirstOrDefault(a => !a.HasHead)); }
public T GetFighter <T>(int id) where T : Fighter { return((T)Actors.FirstOrDefault(entry => entry is T && entry.Id == id)); }
public Fighter GetFighter(Cell cell) { // i assume 2 fighters can be on the same cell (i.g if someone carry someone) return(Actors.FirstOrDefault(entry => entry.Cell == cell)); }
private void Validate_Click(object sender, RoutedEventArgs e) { var dlg = new OpenFileDialog { CheckFileExists = true, CheckPathExists = true, Multiselect = false, Filter = "IFC File|*.ifc|IFC XML File|*.ifcxml", FilterIndex = 0, Title = "Select IFC model file for validation", FileName = App.Settings.LastModel, InitialDirectory = Path.GetDirectoryName(App.Settings.LastModel) }; if (dlg.ShowDialog() != true) { return; } App.Settings.LastModel = dlg.FileName; var fileName = dlg.FileName; var bcfPath = Path.ChangeExtension(fileName, ".bcf"); XbimSchemaVersion schema; using (var temp = File.OpenRead(fileName)) { schema = MemoryModel.GetStepFileXbimSchemaVersion(temp); } var mvd = GetMvd(true, schema); var logger = XbimLogging.CreateLogger("MvdValidator"); using (var ifcStream = File.OpenRead(fileName)) using (var model = MemoryModel.OpenReadStep21(ifcStream, logger, null, ignoreTypes, false, false)) { var results = MvdValidator .ValidateModel(mvd, model) .ToList(); if (results.All(r => r.Concept == null && r.Result == ConceptTestResult.DoesNotApply)) { MessageBox.Show("No applicable entities in the file", "Warning", MessageBoxButton.OK, MessageBoxImage.Warning); return; } var failed = results.Where(r => r.Result == ConceptTestResult.Fail).GroupBy(r => r.Entity).ToList(); var passed = results.Where(r => r.Result == ConceptTestResult.Pass).GroupBy(r => r.Entity).ToList(); var skipped = results.Where(r => r.Result == ConceptTestResult.DoesNotApply).GroupBy(r => r.Entity).ToList(); var bcf = new BCFArchive(); // store reports as documents bcf.Documents.Add(WriteResults("failed.csv", failed.SelectMany(g => g))); bcf.Documents.Add(WriteResults("passed.csv", passed.SelectMany(g => g))); bcf.Documents.Add(WriteResults("skipped.csv", skipped.SelectMany(g => g))); // store actual MVD as a document var mvdStream = new MemoryStream(); mvd.Serialize(mvdStream); bcf.Documents.Add(new DocumentFile { Name = "validation.mvdXML", Stream = mvdStream }); // create topics var failedConcepts = results.Where(r => r.Result == ConceptTestResult.Fail).GroupBy(r => r.Concept.name).ToList(); var actor = ContextSelector.Context.OfType <Actor>().FirstOrDefault()?.Name ?? Actors.FirstOrDefault()?.Name ?? "*****@*****.**"; foreach (var concept in failedConcepts) { var issueId = Guid.NewGuid(); var viewpointId = Guid.NewGuid(); var defViewpointId = Guid.NewGuid(); var components = concept.Select(c => c.Entity).OfType <IIfcRoot>().Select(e => new Component { IfcGuid = e.GlobalId, AuthoringToolId = e.OwnerHistory?.OwningApplication?.ApplicationIdentifier, OriginatingSystem = e.EntityLabel.ToString(), }).ToList(); var issue = new TopicFolder { Id = issueId, Markup = new Markup { Header = new List <HeaderFile> { new HeaderFile { isExternal = true, Filename = Path.GetFileName(fileName), IfcProject = model.Instances.FirstOrDefault <IIfcProject>()?.GlobalId } }, Topic = new Topic { CreationDate = DateTime.Now, Guid = issueId.ToString(), Title = $"Failed validation of {concept.Key}", Description = $"This is automatically generater error report for DSS. This topic refers to all entities which should have {concept.Key} but it wasn't found.", DocumentReference = new List <TopicDocumentReference> { new TopicDocumentReference { isExternal = false, ReferencedDocument = "../Documents/failed.csv" }, new TopicDocumentReference { isExternal = false, ReferencedDocument = "../Documents/validation.mvdXML" } }, CreationAuthor = actor }, Comment = new List <Comment> { new Comment { Date = DateTime.Now, Author = actor, Comment1 = $"Failed validation of {concept.Key}", Viewpoint = new CommentViewpoint { Guid = viewpointId.ToString() } } }, Viewpoints = new List <ViewPoint> { new ViewPoint { Index = 0, Guid = defViewpointId.ToString(), Viewpoint = "viewpoint.bcfv" }, new ViewPoint { Index = 1, Guid = viewpointId.ToString(), Viewpoint = $"{viewpointId.ToString()}.bcfv" } } }, ViewPoints = new List <VisualizationInfo> { new VisualizationInfo { Guid = defViewpointId.ToString(), Components = new Components { ViewSetupHints = new ViewSetupHints { OpeningsVisible = false, SpaceBoundariesVisible = false, SpacesVisible = false }, Selection = concept.Select(c => c.Entity).OfType <IIfcRoot>().Select(e => new Component { IfcGuid = e.GlobalId, AuthoringToolId = e.OwnerHistory?.OwningApplication?.ApplicationIdentifier, OriginatingSystem = e.EntityLabel.ToString(), }).ToList(), Visibility = new ComponentVisibility { DefaultVisibility = true, Exceptions = new List <Component>() }, Coloring = new List <ComponentColoringColor> { new ComponentColoringColor { Color = "FF00FF00", Component = components } } }, }, new VisualizationInfo { Guid = viewpointId.ToString(), Components = new Components { ViewSetupHints = new ViewSetupHints { OpeningsVisible = false, SpaceBoundariesVisible = false, SpacesVisible = false }, Selection = components, Visibility = new ComponentVisibility { DefaultVisibility = false, Exceptions = new List <Component>() } }, } } }; bcf.Topics.Add(issue); } using (var s = File.Create(bcfPath)) { bcf.Serialize(s); } if (!failed.Any()) { MessageBox.Show($"All {passed.Count} applicable entities are valid. {skipped.Count} entities not applicable. Reports are saved in '{bcfPath}'", "Information", MessageBoxButton.OK, MessageBoxImage.Information); } else { MessageBox.Show($"{failed.Count} applicable entities are invalid. {skipped.Count} entities not applicable. Reports are saved in '{bcfPath}'", "Invalid entities", MessageBoxButton.OK, MessageBoxImage.Warning); } } }
/// <summary> /// Get if there's an actor on a tile /// </summary> /// <param name="Coord">Coordinate to check</param> /// <returns>Actor on the tile. Null if none.</returns> public Actor Occupant(XY Coord) { return(Actors.FirstOrDefault(i => i.Location == Coord)); }
public T GetActor(int id) { return(Actors.FirstOrDefault(x => x.Id == id)); }