ModernUO/Projects/UOContent/Engines/Advanced Search/AdvancedSearchResult.cs
Kamron Batman fbbc407954
feat: Adds AdvancedSearch (XmlFind) (#1649)
### Summary

Adds Advanced Search (XmlFind) using `[AS` command.


Notable differences from XmlFind:
* No save to file.
* No "Display from" option (might add that later).
* No advanced XmlSpawner property test syntax. Only basic property operator comparisons.
* This version will freeze your shard, but fans out to all processors just like world saves. (So it should be stupid fast, especially if you have lots of cores)
* Does not support spawn entry/type/error searching. We have a spawn search command to do that already.
* I haven't set up correct "defaults" for the options when you first open it. I'll do that later.

### Screenshots
<img width="575" alt="image" src="https://github.com/modernuo/ModernUO/assets/3953314/2b08e586-0ea6-41c4-b7cd-f70e2ee62b86">

<img width="575" alt="image" src="https://github.com/modernuo/ModernUO/assets/3953314/da3f16b9-6a9e-4d2c-9d93-6cdfa67b4ddc">

<img width="572" alt="image" src="https://github.com/modernuo/ModernUO/assets/3953314/ae1d0a3f-a30d-497c-99ea-2cc988147f8f">
2023-12-28 18:55:47 -08:00

39 lines
740 B
C#

using System;
namespace Server.Engines.AdvancedSearch;
public record AdvancedSearchResult(string Name, Type Type, Point3D Location, Map Map, IEntity Parent)
{
public IEntity Entity { get; set; }
public bool Selected { get; set; }
public Point3D GetLocation()
{
if (Parent?.Deleted == false)
{
return Parent.Location;
}
if (Entity?.Deleted == false)
{
return Entity.Location;
}
return Location;
}
public Map GetMap()
{
if (Parent?.Deleted == false)
{
return Parent.Map;
}
if (Entity?.Deleted == false)
{
return Entity.Map;
}
return Map;
}
}