mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-23 03:35:12 -06:00
76 lines
2.3 KiB
Python
76 lines
2.3 KiB
Python
from panda3d.core import *
|
|
from direct.interval.IntervalGlobal import *
|
|
from direct.showbase import DirectObject
|
|
from DroppedGag import *
|
|
types = ['',
|
|
'Pie',
|
|
'Banana',
|
|
'Anvil']
|
|
|
|
class RaceGag(DirectObject.DirectObject):
|
|
|
|
def __init__(self, parent, slot, testPos):
|
|
DirectObject.DirectObject.__init__(self)
|
|
self.parent = parent
|
|
self.name = 'gag-' + str(slot)
|
|
self.geom = DroppedGag(self.name, base.race.qbox)
|
|
self.geom.dropShadow.setScale(0.7)
|
|
self.geom.setPos(testPos + Vec3(0, 0, -1))
|
|
qc = CollisionTube(Point3(0, 0, -2.5), Point3(0, 0, 2.5), 1)
|
|
self.gagnp = NodePath(CollisionNode(self.name))
|
|
self.gagnp.node().addSolid(qc)
|
|
self.gagnp.reparentTo(self.geom)
|
|
self.gagnp.node().setIntoCollideMask(BitMask32(32768))
|
|
self.gagnp.node().setFromCollideMask(BitMask32(32768))
|
|
self.slot = slot
|
|
self.type = 0
|
|
self.accept('imIn-' + self.name, self.hitGag)
|
|
self.pickupSound = base.loadSfx('phase_6/audio/sfx/KART_getGag.ogg')
|
|
self.fadeout = None
|
|
return
|
|
|
|
def delete(self):
|
|
if self.fadeout:
|
|
self.fadeout.finish()
|
|
self.fadeout = None
|
|
self.gagnp.removeNode()
|
|
self.gagnp = None
|
|
self.geom.delete()
|
|
self.geom = None
|
|
del self.parent
|
|
self.ignore('imIn-' + self.name)
|
|
return
|
|
|
|
def getType(self):
|
|
return self.type
|
|
|
|
def isActive(self):
|
|
if self.type:
|
|
return True
|
|
else:
|
|
return False
|
|
|
|
def genGag(self, spot, type):
|
|
self.type = type
|
|
fadein = self.geom.scaleInterval(1, 4)
|
|
self.geom.setScale(0.001)
|
|
self.geom.reparentTo(self.parent.geom)
|
|
self.gagnp.reparentTo(self.geom)
|
|
fadein.start()
|
|
|
|
def hideGeom(self):
|
|
self.geom.detachNode()
|
|
|
|
def disableGag(self):
|
|
self.gagnp.reparentTo(hidden)
|
|
self.type = 0
|
|
if self.fadeout:
|
|
self.fadeout.finish()
|
|
self.fadeout = Sequence(self.geom.scaleInterval(0.2, 0), Func(self.hideGeom))
|
|
self.fadeout.start()
|
|
|
|
def hitGag(self, cevent):
|
|
if not self.parent.currGag:
|
|
self.pickupSound.play()
|
|
self.parent.pickupGag(self.slot, self.type)
|
|
self.disableGag()
|