def buildList(self):
        self.itemList = CatalogItemList(store=(CatalogItem.Customization
                                               | CatalogItem.Location))

        # Find the interior node:
        for i in xrange(self.dnaData.getNumChildren()):
            child = self.dnaData.at(i)
            if child.getName() == 'interior':
                interior = child
                break
        else:
            self.notify.error('Could not find "interior" in DNA!')

        self.itemList.append(CatalogFurnitureItem(1399, posHpr=self.phonePos))
        # Every child in the interior node is a prop, thus:
        for i in xrange(interior.getNumChildren()):
            child = interior.at(i)
            code = child.getCode()

            if code not in DNA2Furniture:
                self.notify.warning('Unrecognized furniture code %r!' % code)
                continue

            itemId = DNA2Furniture[code]
            if itemId is None:
                continue
            if hasattr(itemId, '__getitem__'):
                itemId = itemId[self.gender]

            x, y, z = child.getPos()
            h, p, r = child.getHpr()
            self.itemList.append(
                CatalogFurnitureItem(itemId, posHpr=(x, y, z, h, p, r)))
Beispiel #2
0
    def buildList(self):
        self.itemList = CatalogItemList(store=(CatalogItem.Customization
                                               | CatalogItem.Location))

        # Find the interior node:
        for child in self.dnaData.children:
            if child.getName() == 'interior':
                interior = child
                break
        else:
            self.notify.error('Could not find "interior" in DNA!')

        # Every child in the interior node is a prop, thus:
        for child in interior.children:
            code = child.getCode()

            if code not in DNA2Furniture:
                self.notify.warning('Unrecognized furniture code %r!' % code)
                continue

            itemId = DNA2Furniture[code]
            if itemId is None:
                continue

            x, y, z = child.getPos()
            h, p, r = child.getHpr()

            self.itemList.append(
                CatalogFurnitureItem(itemId, posHpr=(x, y, z, h, 0, 0)))

        #Add a phone to the itemList
        self.itemList.append(
            CatalogFurnitureItem(1399, posHpr=(0, 0, 0, 0, 0, 0)))
Beispiel #3
0
    def buildList(self):
        self.itemList = CatalogItemList(store=CatalogItem.Customization
                                        | CatalogItem.Location)
        for i in xrange(self.dnaData.getNumChildren()):
            child = self.dnaData.at(i)
            if child.getName() == 'interior':
                interior = child
                break
        else:
            self.notify.error('Could not find "interior" in DNA!')

        for i in xrange(interior.getNumChildren()):
            child = interior.at(i)
            code = child.getCode()
            if code not in DNA2Furniture:
                self.notify.warning('Unrecognized furniture code %r!' % code)
                continue
            itemId = DNA2Furniture[code]
            if itemId is None:
                continue
            x, y, z = child.getPos()
            h, p, r = child.getHpr()
            self.itemList.append(
                CatalogFurnitureItem(itemId, posHpr=(x, y, z, h, p, r)))

        return
Beispiel #4
0
    def createInterior(self):
        self.houseInterior = random.choice(HouseGlobals.interiors)
        self.dnaData = self.air.loadDNAFileAI(self.dnaStore,
                                              self.houseInterior[0])
        furnitureData = {}
        for i in xrange(self.dnaData.getNumChildren()):
            node = self.dnaData.at(i)
            if node.getName() == 'interior':
                for j in xrange(node.getNumChildren()):
                    obj = node.at(j)
                    objName = obj.getName()
                    x, y, z = obj.getPos()
                    h, p, r = obj.getHpr()
                    code = obj.getCode()
                    furnitureData[objName] = {
                        'code': code,
                        'posHpr': (x, y, z, h, 0, 0),
                        'scale': obj.getScale(),
                        'itemId': code2furnitureId.get(code, 0)
                    }

        furnitureData['phone'] = {
            'code': 'phone',
            'posHpr': (-11, 2, 0, 0, 0, 0),
            'scale': 'phone',
            'itemId': code2furnitureId.get('phone', 0)
        }
        interiorItems = CatalogItemList(store=CatalogItem.Customization
                                        | CatalogItem.Location)
        ignoredItems = ['house_interiorA_DNARoot', 'GardenA_DNARoot']
        for name, data in furnitureData.iteritems():
            itemId = data.get('itemId', 0)
            if itemId == 0:
                if name not in ignoredItems:
                    self.notify.warning(
                        'Tried to generate item %s but the ID was not found!' %
                        name)
                continue
            if name == 'closetBoy_DNARoot' and self.gender == 'f':
                itemId += 10
            newItem = CatalogFurnitureItem(itemId, posHpr=data.get('posHpr'))
            interiorItems.append(newItem)

        self.house.b_setInteriorItems(interiorItems.getBlob())
        self.house.b_setInteriorWindows(defaultWindows.getBlob())
        self.house.b_setInteriorWallpaper(defaultWallpaper.getBlob())
        self.furnitureManager.wallpaper = self.house.interiorWallpaper
        self.furnitureManager.windows = self.house.interiorWindows
        self.furnitureManager.loadFurniture()
        self.furnitureManager.saveFurniture()
Beispiel #5
0
    def setItems(self, items):
        # Decode the blob:
        items = CatalogItemList(items,
                                store=CatalogItem.Customization
                                | CatalogItem.Location)

        # Throw out our old items:
        for item in self.items:
            item.destroy()
        self.items = []

        items.removeDuplicates(FLCloset)

        # Due to a bug, some people are missing their closets...
        hasCloset = False
        for item in items:
            if item.getFlags() & FLCloset:
                hasCloset = True
                break

        if not hasCloset and self.ownerId != 0:
            item = CatalogFurnitureItem(500)  # the basic closet...
            item.posHpr = (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
            items.append(item)
            # Since we have modified the items list, should we save it back to the house?

        for item in items:
            if item.getFlags() & FLTrunk:
                if self.house.gender is 0:
                    if item.furnitureType - 4000 < 10:
                        item.furnitureType += 10
                elif item.furnitureType - 4000 > 10:
                    item.furnitureType -= 10
                do = DistributedTrunkAI(self.air, self, item)
            elif item.getFlags() & FLCloset:
                if self.house.gender is 0:
                    if item.furnitureType - 500 < 10:
                        item.furnitureType += 10
                elif item.furnitureType - 500 > 10:
                    item.furnitureType -= 10
                do = DistributedClosetAI(self.air, self, item)
            elif item.getFlags() & FLBank:
                continue  # We dont want banks in the estates.
            elif item.getFlags() & FLPhone:
                do = DistributedPhoneAI(self.air, self, item)
            else:
                do = DistributedFurnitureItemAI(self.air, self, item)
            if self.isGenerated():
                do.generateWithRequired(self.zoneId)
            self.items.append(do)
def furniture(value):
    """
    ship any furniture item from your catalog
    """

    value = int(value)

    target = spellbook.getTarget()

    item = CatalogFurnitureItem(value)  # the Item...
    item.deliveryDate = int(time.time()/60) + item.getDeliveryTime()
    target.onOrder.append(item)
    target.b_setDeliverySchedule(target.onOrder)

    return "Its on its way..."
    def initialize(self):
        # Get DNA file appropriate to this house...
        dnaFile = houseInteriors[self.houseIndex]

        # Load DNA...
        dnaStorage = DNAStorage()
        dnaData = simbase.air.loadDNAFileAI(dnaStorage, dnaFile)

        # Read it into furniture...
        furnitureReader = DNAFurnitureReaderAI(dnaData)

        # Set furniture:
        items = furnitureReader.getList()
        items.append(
            CatalogFurnitureItem(1399, posHpr=(-11.5, 1.8, 0, 0, 0, 0)))

        if self.house.avatarId:
            av = simbase.air.doId2do.get(self.house.avatarId)
            if av:
                gender = av.getStyle().getGender()
                items.append(
                    CatalogFurnitureItem(4000 + (10 if gender == "f" else 0),
                                         posHpr=(-2.3, 9, 0, 270, 0, 0)))

        self.furnitureManager.setItems(items.getBlob())

        # Set default windows and wallpaper:
        del self.furnitureManager.windows[:]
        self.furnitureManager.windows.extend(defaultWindows)
        self.furnitureManager.applyWindows()
        del self.furnitureManager.wallpaper[:]
        self.furnitureManager.wallpaper.extend(defaultWallpaper)
        self.furnitureManager.applyWallpaper()

        # Save:
        self.furnitureManager.saveToHouse()
Beispiel #8
0
 def getItemsForCode(self, code):
     avId = self.air.getAvatarIdFromSender()
     if not avId:
         self.air.writeServerEvent(
             'suspicious',
             avId=avId,
             issue='Could not parse the gender of an invalid avId')
         return
     av = self.air.doId2do.get(avId)
     if not av:
         self.air.writeServerEvent(
             'suspicious',
             avId=avId,
             issue='Could not parse the gender of an invalid avatar')
         return
     code = code.lower()
     if code == 'bdisanerd':
         beans = CatalogBeanItem(420, tagCode=2)
         return [beans]
     if code == 'flip-for-flippy':
         shirt = CatalogClothingItem(2001, 0)
         return [shirt]
     if code == 'dont-be-wacky':
         shirt = CatalogClothingItem(2002, 0)
         return [shirt]
     if code == 'gadzooks':
         shirt = CatalogClothingItem(1807, 0)
         return [shirt]
     if code == 'sillymeter' or code == 'silly meter' or code == 'silly-meter':
         shirt = CatalogClothingItem(1753, 0)
         return [shirt]
     if code == 'gc-sbfo' or code == 'gc sbfo' or code == 'gcsbfo':
         shirt = CatalogClothingItem(1788, 0)
         return [shirt]
     if code == 'getconnected' or code == 'get connected' or code == 'get_connected':
         shirt = CatalogClothingItem(1752, 0)
         return [shirt]
     if code == 'summer':
         shirt = CatalogClothingItem(1709, 0)
         return [shirt]
     if code == 'brrrgh':
         shirt = CatalogClothingItem(1800, 0)
         return [shirt]
     if code == 'toontastic':
         shirt = CatalogClothingItem(1820, 0)
         return [shirt]
     if code == 'sunburst':
         shirt = CatalogClothingItem(1809, 0)
         return [shirt]
     if code == 'sweet' or code == 'schweet':
         beans = CatalogBeanItem(12000, tagCode=2)
         return [beans]
     if code == 'winter' or code == 'cannons':
         rent = CatalogRentalItem(ToontownGlobals.RentalCannon, 2880, 0)
         return [rent]
     if code == 'paycheck':
         beans = CatalogBeanItem(1500, tagCode=2)
         return [beans]
     # Heh, why not?
     if code == 'double-paycheck':
         beans = CatalogBeanItem(1500, tagCode=2)
         return [beans]
     # Pre-Alpha shirt?
     if code == 'PreAlpha':
         shirt = CatalogClothingItem(1763, 0)
         return [shirt]
     # StormSellbot Shirt?
     if code == 'stormsellbot':
         shirt = CatalogClothingItem(111, 0)
         return [shirt]
     # Trunk, shouldn't REALLY be enabled... but... we'll add it back for later
     if code == 'trunk':
         object = CatalogFurnitureItem(4000, 0)
         return [object]
         # Uh? Mgracer?
     # Sue me - Sir Kippy
     if code == 'alpha':
         shirt = CatalogClothingItem(1403, 0)
         shorts = CatalogClothingItem(1404, 0)
         return [shirt, shorts]  # TODO: Give the correct alpha reward
     # Sue me - Sir Kippy
     if code == 'beta':
         return CatalogClothingItem(118,
                                    0)  # TODO: Give it the correct item
         shirt = CatalogClothingItem(1405, 0)
         shorts = CatalogClothingItem(1406, 0)
         return [shirt, shorts]  # TODO: Give the correct beta rewards
     # Uh? Might as well keep it. Disney Legacy Games... hehe...
     if code == 'toonfest2014':
         shirt = CatalogClothingItem(2003, 0)
         if av.getStyle().getGender() == 'm':
             bot = CatalogClothingItem(2004, 0)
         else:
             bot = CatalogClothingItem(2005, 0)
         return [shirt, bot]
     return [CatalogInvalidItem()]
Beispiel #9
0
    def setItems(self, items):
        items = CatalogItemList(items, store=CatalogItem.Customization | CatalogItem.Location)
        for item in self.items:
            item.destroy()

        self.items = []
        items.removeDuplicates(FLCloset)
        items.removeDuplicates(FLPhone)
        items.removeDuplicates(FLBank)
        hasCloset = False
        for item in items:
            try:
                if item.getFlags() & FLCloset:
                    hasCloset = True
                    break
            except:
                pass

        hasAGodDamnPhone = False
        for killme in items:
            try:
                if killme.getFlags() & FLPhone:
                    hasAGodDamnPhone = True
                    break
            except:
                pass

        if not hasAGodDamnPhone and self.ownerId != 0:
            phone = CatalogFurnitureItem(1399)
            phone.posHpr = (-5, 0, 0, 0, 0, 0)
            items.append(phone)
            print 'spawned a phone for someone'
        hasBank = False
        for bank in items:
            try:
                if bank.getFlags() & FLBank:
                    hasBank = True
                    break
            except:
                pass

        if not hasBank and self.ownerId != 0:
            bank = CatalogFurnitureItem(1300)
            bank.posHpr = (5, 0, 0, 0, 0, 0)
            items.append(bank)
            print 'spawned a bank for someone'
        if not hasCloset and self.ownerId != 0:
            item = CatalogFurnitureItem(500)
            item.posHpr = (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
            items.append(item)
            print 'spawned a closet for someone'
        for item in items:
            try:
                if item.getFlags() & FLTrunk:
                    if self.house.gender is 0:
                        if item.furnitureType - 4000 < 10:
                            item.furnitureType += 10
                    elif item.furnitureType - 4000 > 10:
                        item.furnitureType -= 10
                    do = DistributedTrunkAI(self.air, self, item)
                elif item.getFlags() & FLCloset:
                    if self.house.gender is 0:
                        if item.furnitureType - 500 < 10:
                            item.furnitureType += 10
                    elif item.furnitureType - 500 > 10:
                        item.furnitureType -= 10
                    do = DistributedClosetAI(self.air, self, item)
                elif item.getFlags() & FLBank:
                    do = DistributedBankAI(self.air, self, item)
                elif item.getFlags() & FLPhone:
                    do = DistributedPhoneAI(self.air, self, item)
                else:
                    do = DistributedFurnitureItemAI(self.air, self, item)
                if self.isGenerated():
                    do.generateWithRequired(self.zoneId)
                self.items.append(do)
            except:
                print 'another user with a broken estate hurray!!!!!!!!!!!!!!!!!!'
   CatalogAccessoryItem(314),
   CatalogAccessoryItem(320),
   CatalogAccessoryItem(173),
   CatalogAccessoryItem(328),
   CatalogAccessoryItem(329))),
 (10,
  3,
  11,
  2,
  ((3, 2900),
   CatalogChatItem(10003),
   CatalogClothingItem(1001, 0),
   CatalogClothingItem(1002, 0),
   CatalogWallpaperItem(10100),
   CatalogWallpaperItem(10200),
   CatalogFurnitureItem(10000),
   CatalogFurnitureItem(10010),
   CatalogNametagItem(9))),
 (10,
  3,
  11,
  2,
  (CatalogClothingItem(1744, 0),
   CatalogClothingItem(1745, 0),
   CatalogClothingItem(1748, 0),
   CatalogClothingItem(1771, 0),
   CatalogClothingItem(1774, 0),
   CatalogClothingItem(1775, 0),
   CatalogClothingItem(1743, 0),
   CatalogClothingItem(1746, 0),
   CatalogClothingItem(1747, 0),
    def setItems(self, items):
        # Decode the blob:
        items = CatalogItemList(items,
                                store=CatalogItem.Customization
                                | CatalogItem.Location)

        # Throw out our old items:
        for item in self.items:
            item.destroy()
        self.items = []

        items.removeDuplicates(FLCloset)
        items.removeDuplicates(FLPhone)
        items.removeDuplicates(FLBank)

        # Due to a bug, some people are missing their closets...
        hasCloset = False
        for item in items:
            try:
                if item.getFlags() & FLCloset:
                    hasCloset = True
                    break
            except:
                pass

        # kys
        hasAGodDamnPhone = False
        for killme in items:
            try:
                if killme.getFlags() & FLPhone:
                    hasAGodDamnPhone = True
                    break
            except:
                pass
        if not hasAGodDamnPhone and self.ownerId != 0:
            phone = CatalogFurnitureItem(1399)
            phone.posHpr = (-5, 0, 0, 0, 0, 0)
            items.append(phone)
            print('spawned a phone for someone')

        # banks
        hasBank = False
        for bank in items:
            try:
                if bank.getFlags() & FLBank:
                    hasBank = True
                    break
            except:
                pass

        if not hasBank and self.ownerId != 0:
            bank = CatalogFurnitureItem(1300)
            bank.posHpr = (5, 0, 0, 0, 0, 0)
            items.append(bank)
            print('spawned a bank for someone')

        if not hasCloset and self.ownerId != 0:
            item = CatalogFurnitureItem(500)  # the basic closet...
            item.posHpr = (0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
            items.append(item)
            print('spawned a closet for someone')

        # Since we have modified the items list, should we save it back to the house?
        for item in items:
            try:
                if item.getFlags() & FLTrunk:
                    if self.house.gender is 0:
                        if item.furnitureType - 4000 < 10:
                            item.furnitureType += 10
                    elif item.furnitureType - 4000 > 10:
                        item.furnitureType -= 10
                    do = DistributedTrunkAI(self.air, self, item)
                elif item.getFlags() & FLCloset:
                    if self.house.gender is 0:
                        if item.furnitureType - 500 < 10:
                            item.furnitureType += 10
                    elif item.furnitureType - 500 > 10:
                        item.furnitureType -= 10
                    do = DistributedClosetAI(self.air, self, item)
                elif item.getFlags() & FLBank:
                    do = DistributedBankAI(self.air, self, item)
                elif item.getFlags() & FLPhone:
                    do = DistributedPhoneAI(self.air, self, item)
                else:
                    do = DistributedFurnitureItemAI(self.air, self, item)
                if self.isGenerated():
                    do.generateWithRequired(self.zoneId)
                self.items.append(do)
            except:
                print(
                    "another user with a broken estate hurray!!!!!!!!!!!!!!!!!!"
                )