63 lines
2.4 KiB
Python
63 lines
2.4 KiB
Python
from panda3d.core import *
|
|
from direct.interval.IntervalGlobal import *
|
|
from toontown.toonbase.ToontownGlobals import *
|
|
from direct.directnotify import DirectNotifyGlobal
|
|
import DistributedBarrelBase
|
|
|
|
class DistributedGagBarrel(DistributedBarrelBase.DistributedBarrelBase):
|
|
|
|
def __init__(self, cr):
|
|
self.gagLevelMax = 0
|
|
DistributedBarrelBase.DistributedBarrelBase.__init__(self, cr)
|
|
self.numGags = 0
|
|
self.gagScale = 13.0
|
|
|
|
def disable(self):
|
|
DistributedBarrelBase.DistributedBarrelBase.disable(self)
|
|
self.ignoreAll()
|
|
|
|
def delete(self):
|
|
if hasattr(self, 'gagModel') and self.gagModel:
|
|
self.gagModel.removeNode()
|
|
del self.gagModel
|
|
DistributedBarrelBase.DistributedBarrelBase.delete(self)
|
|
|
|
def applyLabel(self):
|
|
invModel = loader.loadModel('phase_3.5/models/gui/inventory_icons')
|
|
self.invModels = []
|
|
from toontown.toonbase import ToontownBattleGlobals
|
|
for gagTrack in xrange(len(ToontownBattleGlobals.AvPropsNew)):
|
|
itemList = []
|
|
for item in xrange(len(ToontownBattleGlobals.AvPropsNew[gagTrack])):
|
|
itemList.append(invModel.find('**/' + ToontownBattleGlobals.AvPropsNew[gagTrack][item]))
|
|
|
|
self.invModels.append(itemList)
|
|
|
|
invModel.removeNode()
|
|
del invModel
|
|
try:
|
|
gagTrack = self.getGagTrack()
|
|
gagLevel = self.getGagLevel()
|
|
self.notify.debug('gagTrack = %s, gagLevel = %s' % (gagTrack, gagLevel))
|
|
self.gagModel = self.invModels[gagTrack][gagLevel]
|
|
self.gagModel.reparentTo(self.gagNode)
|
|
self.gagModel.setScale(self.gagScale)
|
|
self.gagModel.setPos(0, -0.1, 0)
|
|
except AttributeError:
|
|
self.notify.warning("Gag barrel is missing an attribute, can't apply label.")
|
|
|
|
def setNumGags(self, num):
|
|
self.numGags = num
|
|
if hasattr(self, 'gagModel') and self.gagModel:
|
|
if self.numGags == 0:
|
|
self.gagModel.setColorScale(0.5, 0.5, 0.5, 1)
|
|
else:
|
|
self.gagModel.clearColorScale()
|
|
|
|
def setGrab(self, avId):
|
|
DistributedBarrelBase.DistributedBarrelBase.setGrab(self, avId)
|
|
|
|
def resetBarrel(self):
|
|
DistributedBarrelBase.DistributedBarrelBase.resetBarrel(self)
|
|
if hasattr(self, 'gagModel') and self.gagModel:
|
|
self.gagModel.setScale(self.gagScale)
|