function TabardFrame_OnLoad(self) self:RegisterEvent("OPEN_TABARD_FRAME"); self:RegisterEvent("CLOSE_TABARD_FRAME"); self:RegisterEvent("TABARD_CANSAVE_CHANGED"); self:RegisterEvent("TABARD_SAVE_PENDING"); self:RegisterEvent("UNIT_MODEL_CHANGED"); TabardFrameCostFrame:SetBackdropBorderColor(0.4, 0.4, 0.4); TabardFrameCostFrame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b); MoneyFrame_Update("TabardFrameCostMoneyFrame",GetTabardCreationCost()); local backgroundAlpha = 0.40; TabardFrameEmblemTopRight:SetAlpha(backgroundAlpha); TabardFrameEmblemTopLeft:SetAlpha(backgroundAlpha); TabardFrameEmblemBottomRight:SetAlpha(backgroundAlpha); TabardFrameEmblemBottomLeft:SetAlpha(backgroundAlpha); end function TabardCharacterModelFrame_OnLoad(self) self.rotation = 0; TabardModel:SetRotation(self.rotation); end function TabardFrame_OnEvent(self, event, ...) local unit = ...; if ( event == "OPEN_TABARD_FRAME" ) then TabardModel:SetUnit("player"); SetPortraitTexture(TabardFramePortrait,"npc"); TabardFrameNameText:SetText(UnitName("npc")); TabardModel:InitializeTabardColors(); TabardFrame_UpdateTextures(); TabardFrame_UpdateButtons(); ShowUIPanel(TabardFrame); if ( not TabardFrame:IsShown() ) then CloseTabardCreation(); end elseif ( event == "CLOSE_TABARD_FRAME" ) then HideUIPanel(TabardFrame); elseif ( event == "TABARD_CANSAVE_CHANGED" or event == "TABARD_SAVE_PENDING" ) then TabardFrame_UpdateButtons(); elseif ( event == "UNIT_MODEL_CHANGED" ) then if ( unit == "player" ) then TabardModel:SetUnit("player"); end end end function TabardCharacterModelRotateLeftButton_OnClick() TabardModel.rotation = TabardModel.rotation - .03; TabardModel:SetRotation(TabardModel.rotation); PlaySound("igInventoryRotateCharacter"); end function TabardCharacterModelRotateRightButton_OnClick() TabardModel.rotation = TabardModel.rotation + .03; TabardModel:SetRotation(TabardModel.rotation); PlaySound("igInventoryRotateCharacter"); end function TabardCharacterModelFrame_OnUpdate(self, elapsedTime) if ( TabardCharacterModelRotateRightButton:GetButtonState() == "PUSHED" ) then self.rotation = self.rotation + (elapsedTime * 2 * PI * ROTATIONS_PER_SECOND); if ( self.rotation < 0 ) then self.rotation = self.rotation + (2 * PI); end self:SetRotation(self.rotation); end if ( TabardCharacterModelRotateLeftButton:GetButtonState() == "PUSHED" ) then self.rotation = self.rotation - (elapsedTime * 2 * PI * ROTATIONS_PER_SECOND); if ( self.rotation > (2 * PI) ) then self.rotation = self.rotation - (2 * PI); end self:SetRotation(self.rotation); end end function TabardCustomization_Left(id) PlaySound("gsCharacterCreationLook"); TabardModel:CycleVariation(id,-1); TabardFrame_UpdateTextures(); end function TabardCustomization_Right(id) PlaySound("gsCharacterCreationLook"); TabardModel:CycleVariation(id,1); TabardFrame_UpdateTextures(); end function TabardFrame_UpdateTextures() TabardModel:GetUpperEmblemTexture(TabardFrameEmblemTopLeft); TabardModel:GetUpperEmblemTexture(TabardFrameEmblemTopRight); TabardModel:GetLowerEmblemTexture(TabardFrameEmblemBottomLeft); TabardModel:GetLowerEmblemTexture(TabardFrameEmblemBottomRight); end function TabardFrame_UpdateButtons() local guildName, rankName, rank = GetGuildInfo("player"); if ( guildName == nil or rankName == nil or ( rank > 0 ) ) then TabardFrameGreetingText:SetText(TABARDVENDORNOGUILDGREETING); TabardFrameAcceptButton:Disable(); else TabardFrameGreetingText:SetText(TABARDVENDORGREETING); if( TabardModel:CanSaveTabardNow() ) then TabardFrameAcceptButton:Enable(); else TabardFrameAcceptButton:Disable(); end end end