コード例 #1
0
 public IAction Fix(Problem problem)
 {
     return new ReplaceObjects(problem.Objects, problem.Objects.Select(x =>
     {
         var c = x.Clone();
         c.ID = problem.Map.IDGenerator.GetNextObjectID();
         return c;
     }));
 }
コード例 #2
0
ファイル: NoPlayerStart.cs プロジェクト: KonstantinUb/sledge
 public IAction Fix(Problem problem)
 {
     return new Create(problem.Map.WorldSpawn.ID, new Entity(problem.Map.IDGenerator.GetNextObjectID())
                           {
                               EntityData = new EntityData { Name = "info_player_start" },
                               ClassName = "info_player_start",
                               Colour = Colour.GetDefaultEntityColour(),
                               Origin = Coordinate.Zero
                           });
 }
コード例 #3
0
 public IAction Fix(Problem problem)
 {
     var edit = new EditEntityData();
     foreach (var mo in problem.Objects)
     {
         var ed = mo.GetEntityData().Clone();
         var prop = ed.Properties.FirstOrDefault(x => x.Key.ToLowerInvariant() == "target");
         if (prop != null)
         {
             ed.Properties.Remove(prop);
             edit.AddEntity(mo, ed);
         }
     }
     return edit;
 }
コード例 #4
0
ファイル: TextureNotFound.cs プロジェクト: jpiolho/sledge
 public IAction Fix(Problem problem)
 {
     return new EditFace(problem.Faces, (d, x) =>
                                            {
                                                var ignored = "{#!~+-0123456789".ToCharArray();
                                                var def = d.TextureCollection.GetAllItems()
                                                    .OrderBy(i => new string(i.Name.Where(c => !ignored.Contains(c)).ToArray()) + "Z")
                                                    .FirstOrDefault();
                                                if (def != null)
                                                {
                                                    x.Texture.Name = def.Name;
                                                    x.Texture.Texture = def.GetTexture();
                                                    x.CalculateTextureCoordinates();
                                                }
                                            }, true);
 }
コード例 #5
0
ファイル: InvalidKeyValues.cs プロジェクト: silky/sledge
 public IAction Fix(Problem problem)
 {
     var edit = new EditEntityData();
     foreach (var mo in problem.Objects.OfType<Entity>().Where(x => x.GameData != null))
     {
         var ed = mo.GetEntityData().Clone();
         foreach (var prop in mo.EntityData.Properties)
         {
             if (!mo.GameData.Properties.Any(x => String.Equals(x.Name, prop.Key, StringComparison.InvariantCultureIgnoreCase)))
             {
                 ed.Properties.Remove(prop);
             }
         }
         edit.AddEntity(mo, ed);
     }
     return edit;
 }
コード例 #6
0
ファイル: DuplicateKeyValues.cs プロジェクト: jpiolho/sledge
 public IAction Fix(Problem problem)
 {
     var edit = new EditEntityData();
     foreach (var mo in problem.Objects)
     {
         var ed = mo.GetEntityData().Clone();
         var dupes = from p in ed.Properties
                     group p by p.Key.ToLowerInvariant()
                     into g
                     where g.Count() > 1
                     select g;
         foreach (var prop in dupes.SelectMany(dupe => dupe.Skip(1)))
         {
             ed.Properties.Remove(prop);
         }
         edit.AddEntity(mo, ed);
     }
     return edit;
 }
コード例 #7
0
ファイル: InvalidSolids.cs プロジェクト: silky/sledge
 public IAction Fix(Problem problem)
 {
     return new Delete(problem.Objects.Select(x => x.ID));
 }
コード例 #8
0
ファイル: DuplicateFaceIDs.cs プロジェクト: silky/sledge
 public IAction Fix(Problem problem)
 {
     return new EditFace(problem.Faces, (d, x) => x.ID = d.Map.IDGenerator.GetNextFaceID(), true);
 }
コード例 #9
0
 public IAction Fix(Problem problem)
 {
     return new Reparent(problem.Objects[0].Parent.ID, problem.Objects[0].GetChildren().SelectMany(x => x.Find(y => y is Entity)));
 }
コード例 #10
0
ファイル: DuplicateObjectIDs.cs プロジェクト: jpiolho/sledge
 public IAction Fix(Problem problem)
 {
     return new Edit(problem.Objects, (d, x) => x.ID = d.Map.IDGenerator.GetNextObjectID());
 }
コード例 #11
0
 public IAction Fix(Problem problem)
 {
     return new EditFace(problem.Faces, (d,x) => x.AlignTextureToFace(), false);
 }
コード例 #12
0
ファイル: SolidWithChildren.cs プロジェクト: silky/sledge
 public IAction Fix(Problem problem)
 {
     return new Reparent(problem.Objects[0].Parent.ID, problem.Objects[0].GetChildren());
 }
コード例 #13
0
 public IAction Fix(Problem problem)
 {
     return(new Reparent(problem.Objects[0].Parent.ID, problem.Objects[0].GetChildren()));
 }
コード例 #14
0
 public IAction Fix(Problem problem)
 {
     return(new EditFace(problem.Faces, (d, x) => x.AlignTextureToFace(), false));
 }
コード例 #15
0
 public IAction Fix(Problem problem)
 {
     return(new Delete(problem.Objects.Select(x => x.ID)));
 }