Core/Objects: Implemented vignettes

Port From (https://github.com/TrinityCore/TrinityCore/commit/fccf6fb72b60b08dfbe6d5fb17fba55239944fca)
This commit is contained in:
hondacrx
2024-03-13 21:09:46 -04:00
parent 2c008b2b70
commit 4b9b81c7e2
21 changed files with 573 additions and 10 deletions
+16
View File
@@ -230,6 +230,22 @@ namespace Game.Entities
UpdateCriteria(CriteriaType.EnterTopLevelArea, newZone);
UpdateCriteria(CriteriaType.LeaveTopLevelArea, oldZone);
VignetteUpdate vignetteUpdate = new();
foreach (var vignette in GetMap().GetInfiniteAOIVignettes())
{
if (!vignette.Data.GetFlags().HasFlag(VignetteFlags.ZoneInfiniteAOI))
continue;
if (vignette.ZoneID == newZone && Vignettes.CanSee(this, vignette))
vignette.FillPacket(vignetteUpdate.Added);
else if (vignette.ZoneID == oldZone)
vignetteUpdate.Removed.Add(vignette.Guid);
}
if (!vignetteUpdate.Added.IDs.Empty() || !vignetteUpdate.Removed.Empty())
SendPacket(vignetteUpdate);
}
}