Core/Phasing: Implemented db spawns in personal phases
Port From (https://github.com/TrinityCore/TrinityCore/commit/8fabe5a3aacf7797f03d074ab8434f445be64955)
This commit is contained in:
@@ -487,6 +487,13 @@ namespace Game
|
||||
phaseShift.Flags = flags;
|
||||
}
|
||||
|
||||
public static void InitDbPersonalOwnership(PhaseShift phaseShift, ObjectGuid personalGuid)
|
||||
{
|
||||
Cypher.Assert(phaseShift.IsDbPhaseShift);
|
||||
Cypher.Assert(phaseShift.HasPersonalPhase());
|
||||
phaseShift.PersonalGuid = personalGuid;
|
||||
}
|
||||
|
||||
public static void InitDbVisibleMapId(PhaseShift phaseShift, int visibleMapId)
|
||||
{
|
||||
phaseShift.VisibleMapIds.Clear();
|
||||
@@ -542,9 +549,20 @@ namespace Game
|
||||
UpdateVisibilityIfNeeded(obj, updateVisibility, true);
|
||||
}
|
||||
|
||||
public static void PrintToChat(CommandHandler chat, PhaseShift phaseShift)
|
||||
public static void PrintToChat(CommandHandler chat, WorldObject target)
|
||||
{
|
||||
chat.SendSysMessage(CypherStrings.PhaseshiftStatus, phaseShift.Flags, phaseShift.PersonalGuid.ToString());
|
||||
PhaseShift phaseShift = target.GetPhaseShift();
|
||||
|
||||
string phaseOwnerName = "N/A";
|
||||
if (phaseShift.HasPersonalPhase())
|
||||
{
|
||||
WorldObject personalGuid = Global.ObjAccessor.GetWorldObject(target, phaseShift.PersonalGuid);
|
||||
if (personalGuid != null)
|
||||
phaseOwnerName = personalGuid.GetName();
|
||||
}
|
||||
|
||||
chat.SendSysMessage(CypherStrings.PhaseshiftStatus, phaseShift.Flags, phaseShift.PersonalGuid.ToString(), phaseOwnerName);
|
||||
|
||||
if (!phaseShift.Phases.Empty())
|
||||
{
|
||||
StringBuilder phases = new();
|
||||
@@ -592,6 +610,15 @@ namespace Game
|
||||
return phases.ToString();
|
||||
}
|
||||
|
||||
public static bool IsPersonalPhase(uint phaseId)
|
||||
{
|
||||
var phase = CliDB.PhaseStorage.LookupByKey(phaseId);
|
||||
if (phase != null)
|
||||
return phase.Flags.HasFlag(PhaseEntryFlags.Personal);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static void UpdateVisibilityIfNeeded(WorldObject obj, bool updateVisibility, bool changed)
|
||||
{
|
||||
if (changed && obj.IsInWorld)
|
||||
|
||||
Reference in New Issue
Block a user