Core/Objects: Unify Searcher classes into one common implementation
Port From (https://github.com/TrinityCore/TrinityCore/commit/261eb201bf107cef441d9b075e8f23bf0edfbaf0) Port From (https://github.com/TrinityCore/TrinityCore/commit/526b16fea41fb69a302fdebe8a727e175949f04b) Port From (https://github.com/TrinityCore/TrinityCore/commit/8b7dce6521323e788ebf28297ec941a6f9bf876f) Port From (https://github.com/TrinityCore/TrinityCore/commit/5334467f493eb16141f4ad0bce956bc3e19244a0) Port From (https://github.com/TrinityCore/TrinityCore/commit/1e7725c15b149baaf96731231239769e482ec2ed) Port From (https://github.com/TrinityCore/TrinityCore/commit/21712f475383f6f3fae107706f5de5195f75b760)
This commit is contained in:
@@ -1589,7 +1589,7 @@ namespace Game.Entities
|
||||
|
||||
AreaTriggerAI _ai;
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
AreaTrigger Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
@@ -1609,6 +1609,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject updateObject);
|
||||
player.SendPacket(updateObject);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -386,7 +386,7 @@ namespace Game.Entities
|
||||
|
||||
ConversationAI _ai;
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
Conversation Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
@@ -406,6 +406,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -320,7 +320,7 @@ namespace Game.Entities
|
||||
long m_time;
|
||||
CellCoord _cellCoord; // gride for corpse position for fast search
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
Corpse Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
@@ -340,6 +340,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -747,7 +747,7 @@ namespace Game.Entities
|
||||
var searcher = new CreatureLastSearcher(this, u_check);
|
||||
Cell.VisitGridObjects(this, searcher, radius);
|
||||
|
||||
var creature = searcher.GetTarget();
|
||||
var creature = searcher.GetResult();
|
||||
|
||||
SetNoSearchAssistance(true);
|
||||
|
||||
@@ -2323,7 +2323,7 @@ namespace Game.Entities
|
||||
var searcher = new UnitLastSearcher(this, u_check);
|
||||
Cell.VisitAllObjects(this, searcher, dist);
|
||||
|
||||
return searcher.GetTarget();
|
||||
return searcher.GetResult();
|
||||
}
|
||||
|
||||
// select nearest hostile unit within the given attack distance (i.e. distance is ignored if > than ATTACK_DISTANCE), regardless of threat list.
|
||||
@@ -2340,7 +2340,7 @@ namespace Game.Entities
|
||||
|
||||
Cell.VisitAllObjects(this, searcher, Math.Max(dist, SharedConst.AttackDistance));
|
||||
|
||||
return searcher.GetTarget();
|
||||
return searcher.GetResult();
|
||||
}
|
||||
|
||||
public void SendAIReaction(AiReaction reactionType)
|
||||
@@ -3327,7 +3327,7 @@ namespace Game.Entities
|
||||
var u_check = new NearestHostileUnitInAggroRangeCheck(this, useLOS, ignoreCivilians);
|
||||
var searcher = new UnitSearcher(this, u_check);
|
||||
Cell.VisitGridObjects(this, searcher, SharedConst.MaxAggroRadius);
|
||||
return searcher.GetTarget();
|
||||
return searcher.GetResult();
|
||||
}
|
||||
|
||||
public override float GetNativeObjectScale()
|
||||
@@ -3880,7 +3880,7 @@ namespace Game.Entities
|
||||
base.ClearUpdateMask(remove);
|
||||
}
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
Creature Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
@@ -3900,6 +3900,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -307,7 +307,7 @@ namespace Game.Entities
|
||||
int _duration; // for non-aura dynobjects
|
||||
bool _isViewpoint;
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
DynamicObject Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
@@ -327,6 +327,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -633,7 +633,7 @@ namespace Game.Entities
|
||||
var checker = new NearestAttackableNoTotemUnitInObjectRangeCheck(this, radius);
|
||||
var searcher = new UnitLastSearcher(this, checker);
|
||||
Cell.VisitAllObjects(this, searcher, radius);
|
||||
target = searcher.GetTarget();
|
||||
target = searcher.GetResult();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -641,7 +641,7 @@ namespace Game.Entities
|
||||
var check = new AnyUnitInObjectRangeCheck(this, radius);
|
||||
var searcher = new PlayerSearcher(this, check);
|
||||
Cell.VisitWorldObjects(this, searcher, radius);
|
||||
target = searcher.GetTarget();
|
||||
target = searcher.GetResult();
|
||||
}
|
||||
|
||||
if (target != null)
|
||||
@@ -1465,7 +1465,7 @@ namespace Game.Entities
|
||||
var checker = new GameObjectSearcher(this, u_check);
|
||||
|
||||
Cell.VisitGridObjects(this, checker, range);
|
||||
return checker.GetTarget();
|
||||
return checker.GetResult();
|
||||
}
|
||||
|
||||
public void ResetDoorOrButton()
|
||||
@@ -3975,7 +3975,7 @@ namespace Game.Entities
|
||||
ObjectGuid m_linkedTrap;
|
||||
#endregion
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
public GameObject Owner;
|
||||
public ObjectFieldData ObjectMask = new();
|
||||
@@ -3995,6 +3995,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -224,7 +224,7 @@ namespace Game.Entities
|
||||
return (uint)m_azeriteEmpoweredItemData.Selections[tier];
|
||||
}
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
AzeriteEmpoweredItem Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
@@ -245,6 +245,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -510,7 +510,7 @@ namespace Game.Entities
|
||||
}
|
||||
}
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
AzeriteItem Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
@@ -531,6 +531,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -259,7 +259,7 @@ namespace Game.Entities
|
||||
ContainerData m_containerData;
|
||||
Item[] m_bagslot = new Item[98];
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
Bag Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
@@ -280,6 +280,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2838,7 +2838,7 @@ namespace Game.Entities
|
||||
Array<uint> m_gemScalingLevels = new(ItemConst.MaxGemSockets);
|
||||
#endregion
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
Item Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
@@ -2858,6 +2858,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1642,7 +1642,7 @@ namespace Game.Entities
|
||||
var searcher = new CreatureLastSearcher(this, checker);
|
||||
|
||||
Cell.VisitAllObjects(this, searcher, range);
|
||||
return searcher.GetTarget();
|
||||
return searcher.GetResult();
|
||||
}
|
||||
|
||||
public Creature FindNearestCreatureWithOptions(float range, FindCreatureOptions options)
|
||||
@@ -1654,7 +1654,7 @@ namespace Game.Entities
|
||||
searcher.i_phaseShift = PhasingHandler.GetAlwaysVisiblePhaseShift();
|
||||
|
||||
Cell.VisitAllObjects(this, searcher, range);
|
||||
return searcher.GetTarget();
|
||||
return searcher.GetResult();
|
||||
}
|
||||
|
||||
public GameObject FindNearestGameObject(uint entry, float range, bool spawnedOnly = true)
|
||||
@@ -1663,7 +1663,7 @@ namespace Game.Entities
|
||||
var searcher = new GameObjectLastSearcher(this, checker);
|
||||
|
||||
Cell.VisitGridObjects(this, searcher, range);
|
||||
return searcher.GetTarget();
|
||||
return searcher.GetResult();
|
||||
}
|
||||
|
||||
public GameObject FindNearestGameObjectWithOptions(float range, FindGameObjectOptions options)
|
||||
@@ -1675,7 +1675,7 @@ namespace Game.Entities
|
||||
searcher.i_phaseShift = PhasingHandler.GetAlwaysVisiblePhaseShift();
|
||||
|
||||
Cell.VisitGridObjects(this, searcher, range);
|
||||
return searcher.GetTarget();
|
||||
return searcher.GetResult();
|
||||
}
|
||||
|
||||
public GameObject FindNearestUnspawnedGameObject(uint entry, float range)
|
||||
@@ -1684,7 +1684,7 @@ namespace Game.Entities
|
||||
GameObjectLastSearcher searcher = new(this, checker);
|
||||
|
||||
Cell.VisitGridObjects(this, searcher, range);
|
||||
return searcher.GetTarget();
|
||||
return searcher.GetResult();
|
||||
}
|
||||
|
||||
public GameObject FindNearestGameObjectOfType(GameObjectTypes type, float range)
|
||||
@@ -1693,7 +1693,7 @@ namespace Game.Entities
|
||||
var searcher = new GameObjectLastSearcher(this, checker);
|
||||
|
||||
Cell.VisitGridObjects(this, searcher, range);
|
||||
return searcher.GetTarget();
|
||||
return searcher.GetResult();
|
||||
}
|
||||
|
||||
public Player SelectNearestPlayer(float range)
|
||||
@@ -1701,7 +1701,7 @@ namespace Game.Entities
|
||||
var checker = new NearestPlayerInObjectRangeCheck(this, range);
|
||||
var searcher = new PlayerLastSearcher(this, checker);
|
||||
Cell.VisitWorldObjects(this, searcher, range);
|
||||
return searcher.GetTarget();
|
||||
return searcher.GetResult();
|
||||
}
|
||||
|
||||
public ObjectGuid GetCharmerOrOwnerOrOwnGUID()
|
||||
@@ -4059,7 +4059,7 @@ namespace Game.Entities
|
||||
}
|
||||
}
|
||||
|
||||
class CombatLogSender : IDoWork<Player>
|
||||
class CombatLogSender
|
||||
{
|
||||
CombatLogServerPacket i_message;
|
||||
|
||||
@@ -4075,6 +4075,8 @@ namespace Game.Entities
|
||||
|
||||
player.SendPacket(i_message);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(CombatLogSender obj) => obj.Invoke;
|
||||
}
|
||||
|
||||
public struct FindCreatureOptions
|
||||
@@ -4257,7 +4259,7 @@ namespace Game.Entities
|
||||
}
|
||||
}
|
||||
|
||||
struct WorldObjectClientDestroyWork : IDoWork<Player>
|
||||
struct WorldObjectClientDestroyWork
|
||||
{
|
||||
public WorldObject obj;
|
||||
|
||||
@@ -4276,5 +4278,7 @@ namespace Game.Entities
|
||||
obj.DestroyForPlayer(player);
|
||||
player.m_clientGUIDs.Remove(obj.GetGUID());
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(WorldObjectClientDestroyWork obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
@@ -255,7 +255,7 @@ namespace Game.Entities
|
||||
List<uint> _playerDataElementsNeedSave = new();
|
||||
List<uint> _playerDataFlagsNeedSave = new();
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
Player Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
@@ -277,6 +277,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -183,7 +183,7 @@ namespace Game.Entities
|
||||
|
||||
public void SetCreatedBySpellCast(ObjectGuid castId) { _createdBySpellCast = castId; }
|
||||
|
||||
class ValuesUpdateForPlayerWithMaskSender : IDoWork<Player>
|
||||
class ValuesUpdateForPlayerWithMaskSender
|
||||
{
|
||||
SceneObject Owner;
|
||||
ObjectFieldData ObjectMask = new();
|
||||
@@ -203,6 +203,8 @@ namespace Game.Entities
|
||||
udata.BuildPacket(out UpdateObject packet);
|
||||
player.SendPacket(packet);
|
||||
}
|
||||
|
||||
public static implicit operator IDoWork<Player>(ValuesUpdateForPlayerWithMaskSender obj) => obj.Invoke;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user