51 TC_LOG_DEBUG(
"network",
"WorldSession::SendTaxiStatus - {} not found or you can't interact with him.", guid.
ToString());
77 TC_LOG_DEBUG(
"network",
"WORLD: HandleTaxiQueryAvailableNodes - {} not found or you can't interact with him.", taxiQueryAvailableNodes.
Unit.
ToString());
103 TC_LOG_DEBUG(
"network",
"WORLD: CMSG_TAXINODE_STATUS_QUERY {} ", curloc);
115 for (std::size_t i = 0; i < reachableNodes.
size(); ++i)
146 if (
GetPlayer()->m_taxi.SetTaximaskNode(curloc))
163 if (
GetPlayer()->m_taxi.SetTaximaskNode(nodeid))
172 TC_LOG_DEBUG(
"network",
"WORLD: HandleActivateTaxiOpcode - {} not found or you can't interact with it.", activateTaxi.
Vendor.
ToString());
188 if (!
GetPlayer()->m_taxi.IsTaximaskNodeKnown(curloc) || !
GetPlayer()->m_taxi.IsTaximaskNodeKnown(activateTaxi.
Node))
195 uint32 preferredMountDisplay = 0;
198 if (
GetPlayer()->HasSpell(mount->SourceSpellID))
203 std::copy_if(mountDisplays->begin(), mountDisplays->end(), std::back_inserter(usableDisplays), [
this](
MountXDisplayEntry const* mountDisplay)
205 if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(mountDisplay->PlayerConditionID))
206 return sConditionMgr->IsPlayerMeetingCondition(GetPlayer(), playerCondition);
211 if (!usableDisplays.empty())
217 std::vector<uint32> nodes;
233 if (
GetPlayer()->m_taxi.RequestEarlyLanding())
235 flight->LoadPath(
GetPlayer(), flight->GetPath()[flight->GetCurrentNode()]->NodeIndex);
DB2Storage< TaxiNodesEntry > sTaxiNodesStore("TaxiNodes.db2", &TaxiNodesLoadInfo::Instance)
DB2Storage< MountEntry > sMountStore("Mount.db2", &MountLoadInfo::Instance)
#define TC_LOG_DEBUG(filterType__,...)
@ TAXISTATUS_NOT_ELIGIBLE
@ UNIT_NPC_FLAG_FLIGHTMASTER
std::vector< MountXDisplayEntry const * > MountXDisplayContainer
void MoveTaxiFlight(uint32 path, uint32 pathnode)
std::string ToString() const
static ObjectGuid GetGUID(Object const *o)
void AppendTaximaskTo(WorldPackets::Taxi::ShowTaxiNodes &data, bool all)
bool IsTaximaskNodeKnown(uint32 nodeidx) const
Creature * GetNPCIfCanInteractWith(ObjectGuid const &guid, NPCFlags npcFlags, NPCFlags2 npcFlags2) const
bool ActivateTaxiPathTo(std::vector< uint32 > const &nodes, Creature *npc=nullptr, uint32 spellid=0, uint32 preferredMountDisplay=0)
void SetTaxiCheater(bool on)
bool isTaxiCheater() const
void RemoveAurasByType(AuraType auraType, std::function< bool(AuraApplication const *)> const &check, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
MotionMaster * GetMotionMaster()
void Mount(uint32 mount, uint32 vehicleId=0, uint32 creatureEntry=0)
bool HasNpcFlag(NPCFlags flags) const
constexpr uint32 GetMapId() const
bool IsHostileTo(WorldObject const *target) const
ReputationRank GetReactionTo(WorldObject const *target) const
WorldPacket const * Write() override
Optional< ShowTaxiNodesWindowInfo > WindowInfo
WorldPacket const * Write() override
WorldPacket const * Write() override
void HandleActivateTaxiOpcode(WorldPackets::Taxi::ActivateTaxi &activateTaxi)
void HandleTaxiQueryAvailableNodesOpcode(WorldPackets::Taxi::TaxiQueryAvailableNodes &taxiQueryAvailableNodes)
void HandleTaxiRequestEarlyLanding(WorldPackets::Taxi::TaxiRequestEarlyLanding &taxiRequestEarlyLanding)
bool SendLearnNewTaxiNode(Creature *unit)
void SendTaxiMenu(Creature *unit)
void HandleTaxiNodeStatusQueryOpcode(WorldPackets::Taxi::TaxiNodeStatusQuery &taxiNodeStatusQuery)
void SendTaxiStatus(ObjectGuid guid)
void HandleEnableTaxiNodeOpcode(WorldPackets::Taxi::EnableTaxiNode &enableTaxiNode)
Player * GetPlayer() const
void SendActivateTaxiReply(ActivateTaxiReply reply)
void SendPacket(WorldPacket const *packet, bool forced=false)
Send a packet to the client.
void SendDiscoverNewTaxiNode(uint32 nodeid)
void SendDoFlight(uint32 mountDisplayId, uint32 path, uint32 pathNode=0)
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
void GetReachableNodesMask(TaxiNodesEntry const *from, TaxiMask *mask)
std::size_t GetCompleteNodeRoute(TaxiNodesEntry const *from, TaxiNodesEntry const *to, Player const *player, std::vector< uint32 > &shortestPath)
auto SelectRandomContainerElement(C const &container) -> typename std::add_const< decltype(*std::begin(container))>::type &
constexpr float GetPositionX() const
constexpr float GetPositionY() const
constexpr float GetPositionZ() const