Core/Objects: Added helper structures to allow using customized updatefield sending packet functions with Trinity::MessageDistDeliverer
Port From (https://github.com/TrinityCore/TrinityCore/commit/ee835671b4f572f92f79c9b302764ee591c6de11)
This commit is contained in:
@@ -15,11 +15,12 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
using System.Collections.Generic;
|
||||
using Game.Networking;
|
||||
using Framework.Constants;
|
||||
using Framework.Database;
|
||||
using Game.DataStorage;
|
||||
using Game.Networking;
|
||||
using Game.Networking.Packets;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Game.Entities
|
||||
@@ -241,9 +242,33 @@ namespace Game.Entities
|
||||
}
|
||||
|
||||
public int GetMaxAzeritePowerTier() { return m_maxTier; }
|
||||
|
||||
public uint GetSelectedAzeritePower(int tier)
|
||||
{
|
||||
return (uint)m_azeriteEmpoweredItemData.Selections[tier];
|
||||
}
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
{
|
||||
AzeriteEmpoweredItem Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
ItemData ItemMask = new();
|
||||
AzeriteEmpoweredItemData AzeriteEmpoweredItemMask = new();
|
||||
|
||||
public ValuesUpdateForPlayerWithMaskSender(AzeriteEmpoweredItem owner)
|
||||
{
|
||||
Owner = owner;
|
||||
}
|
||||
|
||||
public void Invoke(Player player)
|
||||
{
|
||||
UpdateData udata = new(Owner.GetMapId());
|
||||
|
||||
Owner.BuildValuesUpdateForPlayerWithMask(udata, ObjectMask.GetUpdateMask(), ItemMask.GetUpdateMask(), AzeriteEmpoweredItemMask.GetUpdateMask(), player);
|
||||
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -541,6 +541,29 @@ namespace Game.Entities
|
||||
hasPreviousMilestone = false;
|
||||
}
|
||||
}
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
{
|
||||
AzeriteItem Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
ItemData ItemMask = new();
|
||||
AzeriteItemData AzeriteItemMask = new();
|
||||
|
||||
public ValuesUpdateForPlayerWithMaskSender(AzeriteItem owner)
|
||||
{
|
||||
Owner = owner;
|
||||
}
|
||||
|
||||
public void Invoke(Player player)
|
||||
{
|
||||
UpdateData udata = new(Owner.GetMapId());
|
||||
|
||||
Owner.BuildValuesUpdateForPlayerWithMask(udata, ObjectMask.GetUpdateMask(), ItemMask.GetUpdateMask(), AzeriteItemMask.GetUpdateMask(), player);
|
||||
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class AzeriteItemSelectedEssencesData
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
using Framework.Constants;
|
||||
using Framework.Database;
|
||||
using Game.Networking;
|
||||
using Game.Networking.Packets;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Game.Entities
|
||||
{
|
||||
@@ -280,5 +282,28 @@ namespace Game.Entities
|
||||
|
||||
ContainerData m_containerData;
|
||||
Item[] m_bagslot = new Item[36];
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
{
|
||||
Bag Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
ItemData ItemMask = new();
|
||||
ContainerData ContainerMask = new();
|
||||
|
||||
public ValuesUpdateForPlayerWithMaskSender(Bag owner)
|
||||
{
|
||||
Owner = owner;
|
||||
}
|
||||
|
||||
public void Invoke(Player player)
|
||||
{
|
||||
UpdateData udata = new(Owner.GetMapId());
|
||||
|
||||
Owner.BuildValuesUpdateForPlayerWithMask(udata, ObjectMask.GetUpdateMask(), ItemMask.GetUpdateMask(), ContainerMask.GetUpdateMask(), player);
|
||||
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2737,6 +2737,28 @@ namespace Game.Entities
|
||||
Dictionary<uint, ushort> m_artifactPowerIdToIndex = new();
|
||||
Array<uint> m_gemScalingLevels = new(ItemConst.MaxGemSockets);
|
||||
#endregion
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
{
|
||||
Item Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
ItemData ItemMask = new();
|
||||
|
||||
public ValuesUpdateForPlayerWithMaskSender(Item owner)
|
||||
{
|
||||
Owner = owner;
|
||||
}
|
||||
|
||||
public void Invoke(Player player)
|
||||
{
|
||||
UpdateData udata = new(Owner.GetMapId());
|
||||
|
||||
Owner.BuildValuesUpdateForPlayerWithMask(udata, ObjectMask.GetUpdateMask(), ItemMask.GetUpdateMask(), player);
|
||||
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ItemPosCount
|
||||
|
||||
Reference in New Issue
Block a user