text: from pandac.PandaModules import *
  from direct.distributed.ClockDelta import *
  from direct.distributed import DistributedObject
  from toontown.toonbase import ToontownGlobals
  from direct.task import Task
  SPIN_RATE = 12.5
  
  class DistributedDGFlower(DistributedObject.DistributedObject):
      def __init__(self, cr):
          DistributedObject.DistributedObject.__init__(self, cr)
  
      def generate(self):
          DistributedObject.DistributedObject.generate(self)
          self.bigFlower = loader.loadModel('phase_8/models/props/DG_flower-mod.bam')
          self.bigFlower.setPos(1.39, 92.91, 2.0)
          self.bigFlower.setScale(2.5)
          self.bigFlower.reparentTo(render)
          self.flowerCollSphere = CollisionSphere(0, 0, 0, 4.5)
          self.flowerCollSphereNode = CollisionNode('bigFlowerCollide')
          self.flowerCollSphereNode.addSolid(self.flowerCollSphere)
          self.flowerCollSphereNode.setCollideMask(ToontownGlobals.WallBitmask)
          self.bigFlower.attachNewNode(self.flowerCollSphereNode)
          self.flowerTrigSphere = CollisionSphere(0, 0, 0, 6.0)
          self.flowerTrigSphere.setTangible(0)
          self.flowerTrigSphereNode = CollisionNode('bigFlowerTrigger')
          self.flowerTrigSphereNode.addSolid(self.flowerTrigSphere)
          self.flowerTrigSphereNode.setCollideMask(ToontownGlobals.WallBitmask)
          self.bigFlower.attachNewNode(self.flowerTrigSphereNode)
          taskMgr.add(self.__flowerSpin, self.taskName('DG-flowerSpin'))
          self.accept('enterbigFlowerTrigger', self.__flowerEnter)
          self.accept('exitbigFlowerTrigger', self.__flowerExit)
  
      def disable(self):
          DistributedObject.DistributedObject.disable(self)
          taskMgr.remove(self.taskName('DG-flowerRaise'))
          taskMgr.remove(self.taskName('DG-flowerSpin'))
          self.ignore('enterbigFlowerTrigger')
          self.ignore('exitbigFlowerTrigger')
  
      def delete(self):
          DistributedObject.DistributedObject.delete(self)
          self.bigFlower.removeNode()
          del self.bigFlower
          del self.flowerCollSphere
          del self.flowerCollSphereNode
  
      def __flowerSpin(self, task):
          self.bigFlower.setH(self.bigFlower.getH() + SPIN_RATE*globalClock.getDt())
          return Task.cont
  
      def __flowerEnter(self, collisionEntry):
          self.sendUpdate('avatarEnter', [])
  
      def __flowerExit(self, collisionEntry):
          self.sendUpdate('avatarExit', [])
  
      def setHeight(self, newHeight):
          pos = self.bigFlower.getPos()
          self.bigFlower.posInterval(0.5, (pos[0], pos[1], newHeight)).start()
  