Poodletooth-iLand/toontown/toon/ToonAvatarPanel.py

563 lines
24 KiB
Python
Raw Normal View History

from panda3d.core import *
2015-03-03 16:10:12 -06:00
from direct.gui.DirectGui import *
from direct.showbase import DirectObject
import ToonHead
import LaffMeter
from otp.avatar import Avatar
from direct.distributed import DistributedObject
from direct.directnotify import DirectNotifyGlobal
from toontown.toonbase import ToontownGlobals
from toontown.toonbase import TTLocalizer
2015-07-31 06:45:00 -05:00
from toontown.friends import ToontownFriendSecret
2015-03-03 16:10:12 -06:00
import ToonAvatarDetailPanel
import AvatarPanelBase
from toontown.toontowngui import TTDialog
from otp.otpbase import OTPGlobals
class ToonAvatarPanel(AvatarPanelBase.AvatarPanelBase):
notify = DirectNotifyGlobal.directNotify.newCategory('ToonAvatarPanel')
2015-04-23 12:55:47 -05:00
def __init__(self, avatar):
2015-03-03 16:10:12 -06:00
from toontown.friends import FriendsListPanel
if base.cr.doId2do.get(avatar.getDoId()):
avatar = base.cr.doId2do.get(avatar.getDoId())
AvatarPanelBase.AvatarPanelBase.__init__(self, avatar, FriendsListPanel=FriendsListPanel)
self.notify.debug('Opening toon panel, avId=%d' % self.avId)
self.laffMeter = None
wantsLaffMeter = hasattr(avatar, 'hp')
if not hasattr(avatar, 'style'):
self.notify.warning("Avatar has no 'style'. Abort initialization.")
AvatarPanelBase.AvatarPanelBase.cleanup(self)
return
base.localAvatar.obscureFriendsListButton(1)
gui = loader.loadModel('phase_3.5/models/gui/avatar_panel_gui')
self.frame = DirectFrame(
image=gui.find('**/avatar_panel'),
relief=None,
pos=(-0.22, 0, -0.47),
parent=base.a2dTopRight)
2015-06-02 12:07:50 -05:00
2015-03-03 16:10:12 -06:00
self.disabledImageColor = Vec4(1, 1, 1, 0.4)
self.text0Color = Vec4(1, 1, 1, 1)
self.text1Color = Vec4(0.5, 1, 0.5, 1)
self.text2Color = Vec4(1, 1, 0.5, 1)
self.text3Color = Vec4(0.6, 0.6, 0.6, 1)
self.head = self.frame.attachNewNode('head')
self.head.setPos(0.02, 0, 0.31)
self.headModel = ToonHead.ToonHead()
self.headModel.setupHead(avatar.style, forGui=1)
self.headModel.fitAndCenterHead(0.175, forGui=1)
self.headModel.reparentTo(self.head)
self.headModel.startBlink()
self.headModel.startLookAround()
self.healthText = DirectLabel(
parent=self.frame,
text='',
pos=(0.06, 0, 0.2),
text_pos=(0, 0),
text_scale=0.05)
self.healthText.hide()
self.nameLabel = DirectLabel(
parent=self.frame,
pos=(0.0125, 0, 0.4),
relief=None,
text=self.avName,
text_font=avatar.getFont(),
text_fg=Vec4(0, 0, 0, 1),
text_pos=(0, 0),
text_scale=0.042,
text_wordwrap=7.5,
text_shadow=(1, 1, 1, 1))
self.closeButton = DirectButton(
parent=self.frame,
image=(
gui.find('**/CloseBtn_UP'),
gui.find('**/CloseBtn_DN'),
gui.find('**/CloseBtn_Rllvr'),
gui.find('**/CloseBtn_UP')),
relief=None,
pos=(0.157644, 0, -0.379167),
command=self.__handleClose)
self.friendButton = DirectButton(
parent=self.frame,
image=(
gui.find('**/Frnds_Btn_UP'),
gui.find('**/Frnds_Btn_DN'),
gui.find('**/Frnds_Btn_RLVR'),
gui.find('**/Frnds_Btn_UP')),
image3_color=self.disabledImageColor,
image_scale=0.9,
relief=None,
text=TTLocalizer.AvatarPanelFriends,
text_scale=0.06,
pos=(-0.103, 0, 0.133),
text0_fg=self.text0Color,
text1_fg=self.text1Color,
text2_fg=self.text2Color,
text3_fg=self.text3Color,
text_pos=(0.06, -0.02),
text_align=TextNode.ALeft,
command=self.__handleFriend)
self.goToButton = DirectButton(
parent=self.frame,
image=(
gui.find('**/Go2_Btn_UP'),
gui.find('**/Go2_Btn_DN'),
gui.find('**/Go2_Btn_RLVR'),
gui.find('**/Go2_Btn_UP')),
image3_color=self.disabledImageColor,
image_scale=0.9,
relief=None,
pos=(-0.103, 0, 0.045),
text=TTLocalizer.AvatarPanelGoTo,
text0_fg=self.text0Color,
text1_fg=self.text1Color,
text2_fg=self.text2Color,
text3_fg=self.text3Color,
text_scale=0.06,
text_pos=(0.06, -0.015),
text_align=TextNode.ALeft,
command=self.__handleGoto)
self.whisperButton = DirectButton(
parent=self.frame,
image=(
gui.find('**/ChtBx_ChtBtn_UP'),
gui.find('**/ChtBx_ChtBtn_DN'),
gui.find('**/ChtBx_ChtBtn_RLVR'),
gui.find('**/ChtBx_ChtBtn_UP')),
image3_color=self.disabledImageColor,
image_scale=0.9,
relief=None,
pos=(-0.103, 0, -0.0375),
text=TTLocalizer.AvatarPanelWhisper,
text0_fg=self.text0Color,
text1_fg=self.text1Color,
text2_fg=self.text2Color,
text3_fg=self.text3Color,
text_scale=TTLocalizer.TAPwhisperButton,
text_pos=(0.06, -0.0125),
text_align=TextNode.ALeft,
command=self.__handleWhisper)
self.trueFriendsButton = DirectButton(
2015-03-03 16:10:12 -06:00
parent=self.frame,
image=(
gui.find('**/Amuse_Btn_UP'),
gui.find('**/Amuse_Btn_DN'),
gui.find('**/Amuse_Btn_RLVR'),
gui.find('**/Amuse_Btn_UP')),
image3_color=self.disabledImageColor,
image_scale=0.9,
relief=None,
pos=(-0.103, 0, -0.13),
text=TTLocalizer.AvatarPanelTrueFriends,
2015-03-03 16:10:12 -06:00
text0_fg=self.text0Color,
text1_fg=self.text1Color,
text2_fg=self.text2Color,
text3_fg=self.text3Color,
text_scale=TTLocalizer.TAPtruefriendsButton,
2015-03-03 16:10:12 -06:00
text_pos=(0.055, -0.01),
text_align=TextNode.ALeft,
command=self.__handleTrueFriends)
2015-03-03 16:10:12 -06:00
ignoreStr, ignoreCmd, ignoreScale = self.getIgnoreButtonInfo()
self.ignoreButton = DirectButton(
parent=self.frame,
image=(
gui.find('**/Ignore_Btn_UP'),
gui.find('**/Ignore_Btn_DN'),
gui.find('**/Ignore_Btn_RLVR'),
gui.find('**/Ignore_Btn_UP')),
image3_color=self.disabledImageColor,
image_scale=0.9,
relief=None,
pos=(-0.103697, 0, -0.21),
text=ignoreStr,
text0_fg=self.text0Color,
text1_fg=self.text1Color,
text2_fg=self.text2Color,
text3_fg=self.text3Color,
text_scale=ignoreScale,
text_pos=(0.06, -0.015),
text_align=TextNode.ALeft,
command=ignoreCmd)
2015-04-06 04:32:54 -05:00
self.reportButton = DirectButton(
parent=self.frame,
image=(
gui.find('**/report_BtnUP'),
gui.find('**/report_BtnDN'),
gui.find('**/report_BtnRLVR'),
gui.find('**/report_BtnUP')),
image3_color=self.disabledImageColor,
image_scale=0.65,
relief=None,
pos=(-0.103, 0, -0.29738),
text=TTLocalizer.AvatarPanelReport,
text0_fg=self.text0Color,
text1_fg=self.text1Color,
text2_fg=self.text2Color,
text3_fg=self.text3Color,
text_scale=0.06,
text_pos=(0.06, -0.015),
text_align=TextNode.ALeft,
command=self.handleReport)
2015-03-03 16:10:12 -06:00
2015-06-02 12:07:50 -05:00
if avatar.isAdmin():
self.ignoreButton['state'] = DGG.DISABLED
self.reportButton['state'] = DGG.DISABLED
elif base.localAvatar.isIgnored(self.avId):
self.friendButton['state'] = DGG.DISABLED
self.goToButton['state'] = DGG.DISABLED
self.whisperButton['state'] = DGG.DISABLED
self.trueFriendsButton['state'] = DGG.DISABLED
2015-03-03 16:10:12 -06:00
if not base.localAvatar.isTeleportAllowed():
self.goToButton['state'] = DGG.DISABLED
self.detailButton = DirectButton(
parent=self.frame,
image=(
gui.find('**/ChtBx_BackBtn_UP'),
gui.find('**/ChtBx_BackBtn_DN'),
gui.find('**/ChtBx_BackBtn_Rllvr'),
gui.find('**/ChtBx_BackBtn_UP')),
relief=None,
text=('', TTLocalizer.AvatarPanelDetail,
TTLocalizer.AvatarPanelDetail, ''),
text_fg=self.text2Color,
text_shadow=(0, 0, 0, 1),
text_scale=0.055,
text_pos=(-0.075, -0.01),
text_align=TextNode.ARight,
pos=(-0.133773, 0, -0.395),
command=self.__handleDetails)
self.__makeBoardingGui()
self.__makePetGui(avatar)
self.__checkGroupStatus()
gui.removeNode()
if wantsLaffMeter:
self.__makeLaffMeter(avatar)
self.__updateHp(avatar.hp, avatar.maxHp)
self.healthText.show()
self.laffMeter.show()
menuX = -0.05
menuScale = 0.064
if self.avGenerateName:
self.accept(self.avGenerateName, self.__handleGenerateAvatar)
if self.avHpChangeName:
self.accept(self.avHpChangeName, self.__updateHp)
self.accept('updateLaffMeter', self.__updateLaffMeter)
self.accept('updateGroupStatus', self.__checkGroupStatus)
self.frame.show()
messenger.send('avPanelDone')
def disableAll(self):
self.detailButton['state'] = DGG.DISABLED
2015-04-06 04:32:54 -05:00
self.reportButton['state'] = DGG.DISABLED
2015-03-03 16:10:12 -06:00
self.ignoreButton['state'] = DGG.DISABLED
self.goToButton['state'] = DGG.DISABLED
self.trueFriendsButton['state'] = DGG.DISABLED
2015-03-03 16:10:12 -06:00
self.whisperButton['state'] = DGG.DISABLED
self.petButton['state'] = DGG.DISABLED
self.friendButton['state'] = DGG.DISABLED
self.closeButton['state'] = DGG.DISABLED
self.groupButton['state'] = DGG.DISABLED
self.boardingInfoButton['state'] = DGG.DISABLED
def cleanup(self):
if not hasattr(self, 'frame') or self.frame == None:
return
self.notify.debug('Clean up toon panel, avId=%d' % self.avId)
if self.frame:
self.frame.destroy()
del self.frame
self.frame = None
ToonAvatarDetailPanel.unloadAvatarDetail()
if self.groupButton:
self.groupButton.destroy()
del self.groupButton
self.groupButton = None
if self.boardingInfoButton:
self.boardingInfoButton.destroy()
del self.boardingInfoButton
self.boardingInfoButton = None
if self.boardingInfoText:
self.boardingInfoText.destroy()
del self.boardingInfoText
self.boardingInfoText = None
if self.groupFrame:
self.groupFrame.destroy()
del self.groupFrame
self.groupFrame = None
self.head.removeNode()
del self.head
self.headModel.stopBlink()
self.headModel.stopLookAroundNow()
self.headModel.delete()
del self.headModel
base.localAvatar.obscureFriendsListButton(-1)
self.laffMeter = None
self.ignore('updateLaffMeter')
self.ignoreAll()
if hasattr(self.avatar, 'bFake') and self.avatar.bFake:
self.avatar.delete()
2015-06-26 02:09:27 -05:00
base.setCellsAvailable([base.rightCells[0]], 1)
2015-03-03 16:10:12 -06:00
AvatarPanelBase.AvatarPanelBase.cleanup(self)
return
def __handleGoto(self):
if base.localAvatar.isTeleportAllowed():
base.localAvatar.chatMgr.noWhisper()
messenger.send('gotoAvatar', [self.avId, self.avName, self.avDisableName])
def __handleToPet(self):
toonAvatar = self.avatar
if base.cr.doId2do.get(toonAvatar.getDoId()):
toonAvatar = base.cr.doId2do.get(toonAvatar.getDoId())
petAvatar = base.cr.doId2do.get(toonAvatar.getPetId())
self.disableAll()
from toontown.pets import PetDetail
PetDetail.PetDetail(toonAvatar.getPetId(), self.__petDetailsLoaded)
def __petDetailsLoaded(self, avatar):
self.cleanup()
if avatar:
self.notify.debug("Looking at someone's pet. pet doId = %s" % avatar.doId)
messenger.send('clickedNametag', [avatar])
def __handleWhisper(self):
2015-04-23 17:18:16 -05:00
base.localAvatar.chatMgr.whisperTo(self.avName, self.avId)
2015-03-03 16:10:12 -06:00
2015-07-31 06:45:00 -05:00
def __handleTrueFriends(self):
base.localAvatar.chatMgr.noWhisper()
ToontownFriendSecret.showFriendSecret()
2015-03-03 16:10:12 -06:00
def __handleFriend(self):
base.localAvatar.chatMgr.noWhisper()
messenger.send('friendAvatar', [self.avId, self.avName, self.avDisableName])
def __handleDetails(self):
base.localAvatar.chatMgr.noWhisper()
2015-04-23 12:55:47 -05:00
messenger.send('avatarDetails', [self.avId, self.avName])
2015-03-03 16:10:12 -06:00
def __handleDisableAvatar(self):
if not base.cr.isFriend(self.avId):
self.cleanup()
AvatarPanelBase.currentAvatarPanel = None
else:
self.healthText.hide()
if self.laffMeter != None:
self.laffMeter.stop()
self.laffMeter.destroy()
self.laffMeter = None
return
def __handleGenerateAvatar(self, avatar):
newAvatar = base.cr.doId2do.get(self.avatar.doId)
if newAvatar:
self.avatar = newAvatar
self.__updateLaffMeter(avatar, avatar.hp, avatar.maxHp)
self.__checkGroupStatus()
def __updateLaffMeter(self, avatar, hp, maxHp):
if self.laffMeter == None:
self.__makeLaffMeter(avatar)
self.__updateHp(avatar.hp, avatar.maxHp)
self.laffMeter.show()
self.healthText.show()
return
def __makeLaffMeter(self, avatar):
self.laffMeter = LaffMeter.LaffMeter(avatar.style, avatar.hp, avatar.maxHp)
self.laffMeter.reparentTo(self.frame)
self.laffMeter.setPos(-0.1, 0, 0.24)
self.laffMeter.setScale(0.03)
def __updateHp(self, hp, maxHp, quietly = 0):
if self.laffMeter != None and hp != None and maxHp != None:
self.laffMeter.adjustFace(hp, maxHp)
self.healthText['text'] = '%d / %d' % (hp, maxHp)
return
def __handleClose(self):
self.cleanup()
AvatarPanelBase.currentAvatarPanel = None
if self.friendsListShown:
self.FriendsListPanel.showFriendsList()
return
def getAvId(self):
if hasattr(self, 'avatar'):
if self.avatar:
return self.avatar.doId
return None
def isHidden(self):
if not hasattr(self, 'frame') or not self.frame:
return 1
return self.frame.isHidden()
def getType(self):
return 'toon'
def handleInvite(self):
if localAvatar.boardingParty.isInviteePanelUp():
localAvatar.boardingParty.showMe(TTLocalizer.BoardingPendingInvite, pos=(0, 0, 0))
else:
self.groupButton['state'] = DGG.DISABLED
localAvatar.boardingParty.requestInvite(self.avId)
def handleKick(self):
if not base.cr.playGame.getPlace().getState() == 'elevator':
self.confirmKickOutDialog = TTDialog.TTDialog(style=TTDialog.YesNo, text=TTLocalizer.BoardingKickOutConfirm % self.avName, command=self.__confirmKickOutCallback)
self.confirmKickOutDialog.show()
def __confirmKickOutCallback(self, value):
if self.confirmKickOutDialog:
self.confirmKickOutDialog.destroy()
self.confirmKickOutDialog = None
if value > 0:
if self.groupButton:
self.groupButton['state'] = DGG.DISABLED
localAvatar.boardingParty.requestKick(self.avId)
return
def __checkGroupStatus(self):
self.groupFrame.hide()
if hasattr(self, 'avatar'):
if self.avatar and hasattr(self.avatar, 'getZoneId') and localAvatar.getZoneId() == self.avatar.getZoneId():
if localAvatar.boardingParty:
if self.avId in localAvatar.boardingParty.getGroupMemberList(localAvatar.doId):
if localAvatar.boardingParty.getGroupLeader(localAvatar.doId) == localAvatar.doId:
self.groupButton['text'] = ('', TTLocalizer.AvatarPanelGroupMemberKick, TTLocalizer.AvatarPanelGroupMemberKick)
self.groupButton['image'] = self.kickOutImageList
self.groupButton['command'] = self.handleKick
self.groupButton['state'] = DGG.NORMAL
else:
self.groupButton['text'] = ('', TTLocalizer.AvatarPanelGroupMember, TTLocalizer.AvatarPanelGroupMember)
self.groupButton['command'] = None
self.groupButton['image'] = self.inviteImageDisabled
self.groupButton['image_color'] = Vec4(1, 1, 1, 0.4)
self.groupButton['state'] = DGG.NORMAL
else:
g1 = localAvatar.boardingParty.countInGroup(self.avId)
g2 = localAvatar.boardingParty.countInGroup(localAvatar.doId)
if (g1 + g2) > localAvatar.boardingParty.maxSize:
self.groupButton['text'] = ('', TTLocalizer.AvatarPanelGroupMember, TTLocalizer.AvatarPanelGroupMember)
self.groupButton['command'] = None
self.groupButton['image'] = self.inviteImageDisabled
self.groupButton['image_color'] = Vec4(1, 1, 1, 0.4)
else:
if g1 > 0 and g2 > 0:
self.groupButton['text'] = ('', TTLocalizer.AvatarPanelGroupInvite, "%s %d"%(TTLocalizer.AvatarPanelGroupMerge, (g1+g2)))
self.groupFrame['text']=TTLocalizer.BoardingPartyTitleMerge;
else:
self.groupButton['text'] = ('', TTLocalizer.AvatarPanelGroupInvite, TTLocalizer.AvatarPanelGroupInvite)
self.groupFrame['text']=TTLocalizer.BoardingPartyTitle;
self.groupButton['command'] = self.handleInvite
self.groupButton['image'] = self.inviteImageList
self.groupButton['state'] = DGG.NORMAL
if base.config.GetBool('want-boarding-groups', 1):
2015-06-26 02:09:27 -05:00
base.setCellsAvailable([base.rightCells[0]], 0)
2015-03-03 16:10:12 -06:00
self.groupFrame.show()
return
def handleReadInfo(self, task = None):
self.boardingInfoButton['state'] = DGG.DISABLED
if self.boardingInfoText:
self.boardingInfoText.destroy()
self.boardingInfoText = TTDialog.TTDialog(style=TTDialog.Acknowledge, text=TTLocalizer.BoardingPartyInform % localAvatar.boardingParty.maxSize, command=self.handleCloseInfo)
def handleCloseInfo(self, *extraArgs):
self.boardingInfoButton['state'] = DGG.NORMAL
if self.boardingInfoText:
self.boardingInfoText.destroy()
del self.boardingInfoText
self.boardingInfoText = None
return
def __makePetGui(self, avatar):
2015-06-02 12:07:50 -05:00
if self.avatar.isAdmin():
helpGui = loader.loadModel('phase_3.5/models/gui/tt_m_gui_brd_help')
image = (helpGui.find('**/tt_t_gui_brd_helpUp'), helpGui.find('**/tt_t_gui_brd_helpDown'), helpGui.find('**/tt_t_gui_brd_helpHover'), helpGui.find('**/tt_t_gui_brd_helpDown'))
text = ('', TTLocalizer.AvatarPanelCast, TTLocalizer.AvatarPanelCast, '')
self.petButton = DirectButton(parent=self.frame, image=image, relief=None, pos=(0.02, -0.2, -0.385), text=text, text_fg=self.text2Color, scale=0.8,
text_shadow=(0, 0, 0, 1), text_scale=0.07, text_pos=(0, -0.125), text_align=TextNode.ACenter, command=self.__handleCastDialog)
helpGui.removeNode()
return
2015-07-05 18:59:25 -05:00
2015-03-03 16:10:12 -06:00
petGui = loader.loadModel('phase_3.5/models/gui/PetControlPannel')
self.petButton = DirectButton(parent=self.frame, image=(petGui.find('**/PetControlToonButtonUp1'), petGui.find('**/PetControlToonButtonDown1'), petGui.find('**/PetControlToonButtonRollover1')), geom=petGui.find('**/PetBattleIcon'), geom3_color=self.disabledImageColor, relief=None, pos=(0.22, -0.2, -0.475), text=('',
TTLocalizer.AvatarPanelPet,
TTLocalizer.AvatarPanelPet,
''), text_fg=self.text2Color, text_shadow=(0, 0, 0, 1), text_scale=0.325, text_pos=(-1.3, 0.05), text_align=TextNode.ACenter, command=self.__handleToPet)
self.petButton.setScale(0.15)
if not (base.wantPets and avatar.hasPet()):
self.petButton['state'] = DGG.DISABLED
self.petButton.hide()
petGui.removeNode()
2015-06-02 12:07:50 -05:00
def __handleCastDialog(self):
self.cleanupDialog()
base.cr.playGame.getPlace().setState('stopped')
2015-08-13 06:03:08 -05:00
self.dialog = TTDialog.TTDialog(style=TTDialog.Acknowledge, text=TTLocalizer.AvatarPanelCastInfo % self.avatar.getName(), text_wordwrap=20, command=self.__cleanupDialogAndWalk)
2015-06-02 12:07:50 -05:00
self.dialog.show()
2015-08-13 06:03:08 -05:00
def __cleanupDialogAndWalk(self, extra=None):
if self.dialog:
self.dialog.destroy()
self.dialog = None
base.cr.playGame.getPlace().fsm.request('walk')
2015-03-03 16:10:12 -06:00
def __makeBoardingGui(self):
self.confirmKickOutDialog = None
groupAvatarBgGui = loader.loadModel('phase_3.5/models/gui/tt_m_gui_brd_avatarPanelBg')
boardingGroupBGImage = groupAvatarBgGui.find('**/tt_t_gui_brd_avatar_panel_party')
self.groupFrame = DirectFrame(parent=self.frame, relief=None, image=boardingGroupBGImage, image_scale=(0.5, 1, 0.5), textMayChange=1, text=TTLocalizer.BoardingPartyTitle, text_wordwrap=16, text_scale=TTLocalizer.TAPgroupFrame, text_pos=(0.01, 0.08), pos=(0, 0, -0.61))
groupInviteGui = loader.loadModel('phase_3.5/models/gui/tt_m_gui_brd_inviteButton')
self.inviteImageList = (groupInviteGui.find('**/tt_t_gui_brd_inviteUp'),
groupInviteGui.find('**/tt_t_gui_brd_inviteDown'),
groupInviteGui.find('**/tt_t_gui_brd_inviteHover'),
groupInviteGui.find('**/tt_t_gui_brd_inviteUp'))
self.kickOutImageList = (groupInviteGui.find('**/tt_t_gui_brd_kickoutUp'),
groupInviteGui.find('**/tt_t_gui_brd_kickoutDown'),
groupInviteGui.find('**/tt_t_gui_brd_kickoutHover'),
groupInviteGui.find('**/tt_t_gui_brd_kickoutUp'))
self.inviteImageDisabled = groupInviteGui.find('**/tt_t_gui_brd_inviteDisabled')
self.groupButton = DirectButton(parent=self.groupFrame, image=self.inviteImageList, image3_color=self.disabledImageColor, image_scale=0.85, relief=None, text=('', TTLocalizer.AvatarPanelGroupInvite, TTLocalizer.AvatarPanelGroupInvite), text0_fg=self.text0Color, text1_fg=self.text1Color, text2_fg=self.text2Color, text3_fg=self.text3Color, text_scale=TTLocalizer.TAPgroupButton, text_pos=(-0.0, -0.1), text_align=TextNode.ACenter, command=self.handleInvite, pos=(0.01013, 0, -0.05464))
helpGui = loader.loadModel('phase_3.5/models/gui/tt_m_gui_brd_help')
helpImageList = (helpGui.find('**/tt_t_gui_brd_helpUp'),
helpGui.find('**/tt_t_gui_brd_helpDown'),
helpGui.find('**/tt_t_gui_brd_helpHover'),
helpGui.find('**/tt_t_gui_brd_helpDown'))
self.boardingInfoButton = DirectButton(parent=self.groupFrame, relief=None, text_pos=(-0.05, 0.05), text_scale=0.06, text_align=TextNode.ALeft, text_fg=Vec4(1, 1, 1, 1), text_shadow=Vec4(0, 0, 0, 1), image=helpImageList, image_scale=(0.5, 1, 0.5), image3_color=self.disabledImageColor, scale=1.05, command=self.handleReadInfo, pos=(0.1829, 0, 0.02405))
self.boardingInfoText = None
groupInviteGui.removeNode()
groupAvatarBgGui.removeNode()
2015-07-31 06:45:00 -05:00
helpGui.removeNode()