Core/Objects: Implemented vignettes
Port From (https://github.com/TrinityCore/TrinityCore/commit/fccf6fb72b60b08dfbe6d5fb17fba55239944fca)
This commit is contained in:
@@ -538,6 +538,8 @@ namespace Game.Entities
|
||||
// This needs to be before RemoveFromWorld to make GetCaster() return a valid for aura removal
|
||||
InterruptNonMeleeSpells(true);
|
||||
|
||||
SetVignette(0);
|
||||
|
||||
if (IsInWorld)
|
||||
RemoveFromWorld();
|
||||
else
|
||||
@@ -939,6 +941,24 @@ namespace Game.Entities
|
||||
return collisionHeight1 == 0.0f ? MapConst.DefaultCollesionHeight : collisionHeight1;
|
||||
}
|
||||
|
||||
public override VignetteData GetVignette() { return m_vignette; }
|
||||
|
||||
public void SetVignette(uint vignetteId)
|
||||
{
|
||||
if (m_vignette != null)
|
||||
{
|
||||
if (m_vignette.Data.ID == vignetteId)
|
||||
return;
|
||||
|
||||
Vignettes.Remove(m_vignette, this);
|
||||
m_vignette = null;
|
||||
}
|
||||
|
||||
var vignette = CliDB.VignetteStorage.LookupByKey(vignetteId);
|
||||
if (vignette != null)
|
||||
m_vignette = Vignettes.Create(vignette, this);
|
||||
}
|
||||
|
||||
public override string GetDebugInfo()
|
||||
{
|
||||
string str = $"{base.GetDebugInfo()}\nIsAIEnabled: {IsAIEnabled()} DeathState: {GetDeathState()} UnitMovementFlags: {GetUnitMovementFlags()} UnitMovementFlags2: {GetUnitMovementFlags2()} Class: {GetClass()}\n" +
|
||||
@@ -1574,6 +1594,9 @@ namespace Game.Entities
|
||||
SetEmoteState(Emote.OneshotNone);
|
||||
SetStandState(UnitStandStateType.Stand);
|
||||
|
||||
if (m_vignette != null && !m_vignette.Data.GetFlags().HasFlag(VignetteFlags.PersistsThroughDeath))
|
||||
SetVignette(0);
|
||||
|
||||
// players in instance don't have ZoneScript, but they have InstanceScript
|
||||
ZoneScript zoneScript = GetZoneScript() != null ? GetZoneScript() : GetInstanceScript();
|
||||
if (zoneScript != null)
|
||||
|
||||
Reference in New Issue
Block a user