text: import GardenGlobals
  from direct.directnotify import DirectNotifyGlobal
  import FlowerBase
  
  class FlowerCollection:
      notify = DirectNotifyGlobal.directNotify.newCategory('FlowerCollection')
  
      def __init__(self):
          self.flowerlist = []
  
      def __len__(self):
          return len(self.flowerlist)
  
      def getFlower(self):
          return self.flowerlist
  
      def makeFromNetLists(self, speciesList, varietyList):
          self.flowerlist = []
          for species, variety in zip(speciesList, varietyList):
              self.flowerlist.append(FlowerBase.FlowerBase(species, variety))
  
      def getNetLists(self):
          speciesList = []
          varietyList = []
          for flower in self.flowerlist:
              speciesList.append(flower.getSpecies())
              varietyList.append(flower.getVariety())
  
          return [
           speciesList, varietyList]
  
      def hasFlower(self, species, variety):
          for flower in self.flowerlist:
              if flower.getSpecies() == species and flower.getVariety() == variety:
                  return 1
  
          return 0
  
      def hasSpecies(self, species):
          for flower in self.flowerlist:
              if flower.getSpecies() == species:
                  return 1
  
          return 0
  
      def getInitialVariety(self, species):
          retVal = 100000
          for flower in self.flowerlist:
              if flower.getSpecies() == species:
                  if flower.getVariety() < retVal:
                      retVal = flower.getVariety()
  
          if retVal == 100000:
              retVal = 0
          return retVal
  
      def __collect(self, newFlower, updateCollection):
          for flower in self.flowerlist:
              if flower.getVariety() == newFlower.getVariety() and flower.getSpecies() == newFlower.getSpecies():
                  return GardenGlobals.COLLECT_NO_UPDATE
  
          if updateCollection:
              self.flowerlist.append(newFlower)
          return GardenGlobals.COLLECT_NEW_ENTRY
  
      def collectFlower(self, newFlower):
          return self.__collect(newFlower, updateCollection=1)
  
      def __str__(self):
          numFlower = len(self.flowerlist)
          txt = 'Flower Collection (%s flowers):' % numFlower
          for flower in self.flowerlist:
              txt += '\n' + str(flower)
  
          return txt