From fb09700ec3cc11f69ba228627a760fe1776acad4 Mon Sep 17 00:00:00 2001 From: Parnic Date: Sun, 21 Nov 2010 22:29:37 +0000 Subject: [PATCH] - fixed pet health/mana modules getting stuck on the player when leaving an instance while on a vehicle --- modules/PetHealth.lua | 25 +++++++++++++++++++------ modules/PetMana.lua | 27 +++++++++++++++++++-------- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/modules/PetHealth.lua b/modules/PetHealth.lua index 14f64dc..4db2ef6 100644 --- a/modules/PetHealth.lua +++ b/modules/PetHealth.lua @@ -62,6 +62,7 @@ function PetHealth.prototype:Enable(core) self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle") self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle") + self:RegisterEvent("PLAYER_ENTERING_WORLD", "CheckVehicle") self.frame:SetAttribute("unit", self.unit) RegisterUnitWatch(self.frame) @@ -227,21 +228,33 @@ function PetHealth.prototype:EnableClickTargeting(bEnable) end function PetHealth.prototype:EnteringVehicle(event, unit, arg2) - if (self.unit == "pet" and IceHUD:ShouldSwapToVehicle(unit, arg2)) then - self.unit = "player" - self:RegisterFontStrings() + if (self.unit == "pet") then + if IceHUD:ShouldSwapToVehicle(unit, arg2) then + self.unit = "player" + self:RegisterFontStrings() + end self:Update(self.unit) end end function PetHealth.prototype:ExitingVehicle(event, unit) - if (unit == "player" and self.unit == "player") then - self.unit = "pet" - self:RegisterFontStrings() + if (unit == "player") then + if self.unit == "player" then + self.unit = "pet" + self:RegisterFontStrings() + end self:Update(self.unit) end end +function PetHealth.prototype:CheckVehicle() + if UnitHasVehicleUI("player") then + self:EnteringVehicle(nil, "player", true) + else + self:ExitingVehicle(nil, "player") + end +end + -- Load us up IceHUD.PetHealth = PetHealth:new() diff --git a/modules/PetMana.lua b/modules/PetMana.lua index 39c6e67..9ed37b0 100644 --- a/modules/PetMana.lua +++ b/modules/PetMana.lua @@ -73,6 +73,7 @@ function PetMana.prototype:Enable(core) self:RegisterEvent("UNIT_ENTERED_VEHICLE", "EnteringVehicle") self:RegisterEvent("UNIT_EXITED_VEHICLE", "ExitingVehicle") + self:RegisterEvent("PLAYER_ENTERING_WORLD", "CheckVehicle") self:CheckPet() self:ManaType(nil, self.unit) @@ -203,21 +204,31 @@ function PetMana.prototype:GetOptions() end function PetMana.prototype:EnteringVehicle(event, unit, arg2) - if (self.unit == "pet" and IceHUD:ShouldSwapToVehicle(unit, arg2)) then - self.unit = "player" - self:RegisterFontStrings() + if (self.unit == "pet") then + if IceHUD:ShouldSwapToVehicle(unit, arg2) then + self.unit = "player" + self:RegisterFontStrings() + end self:ManaType(nil, self.unit) - self:Update(self.unit) end end function PetMana.prototype:ExitingVehicle(event, unit) - if (unit == "player" and self.unit == "player") then - self.unit = "pet" - self:RegisterFontStrings() + if (unit == "player") then + if self.unit == "player" then + self.unit = "pet" + self:RegisterFontStrings() + end self:ManaType(nil, self.unit) - self:Update(self.unit) + end +end + +function PetMana.prototype:CheckVehicle() + if UnitHasVehicleUI("player") then + self:EnteringVehicle(nil, "player", true) + else + self:ExitingVehicle(nil, "player") end end