fix: Fixes codegenned spawners and adds RunUO spawner import support (#1682)

> [!IMPORTANT]  
> This code change includes important fixes for all spawners after they were converted to codegen!

> [!NOTE] 
> **Developer Note**
> Usage/Description/Aliases attributes were moved to the core so they can be used by the command registration system.

### Summary
- **Fixes spawners not registering their spawns on world load**
- Changes `[GenerateSpawners` to `[ImportSpawners`
- Removes `ConvertPremiumSpawners`
- Adds Premium spawner import support to `[ImportSpawners`
- Adds RunUO XML import support: https://github.com/ruaduck/xmlspawner/blob/ServUOMaster/XmlSpawner/XmlSpawner%20Core/SpawnerExporter.cs
- Fixed an issue where not manually registering an alias meant it wasn't available as a command
This commit is contained in:
Kamron Batman 2024-02-17 10:46:55 -08:00 • committed by GitHub
parent cc064a27a5
commit d0d7be8de0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 568 additions and 522 deletions

View file

@ -76,14 +76,20 @@ public partial class SpawnerEntry
if (e != null)
{
e.Spawner = _parent;
Spawned.Add(e);
_parent.Spawned.TryAdd(e, this);
}
}
}
[AfterDeserialization]
private void AfterDeserialization()
{
foreach (var e in Spawned)
{
e.Spawner = _parent;
}
}
[JsonIgnore]
public EntryFlags Valid { get; set; }
@ -99,6 +105,7 @@ public partial class SpawnerEntry
if (parent.OnDefragSpawn(spawned, false))
{
Spawned.RemoveAt(i--);
_parent.MarkDirty();
}
}
}