Esempio n. 1
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)))
    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)))
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 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..."
Esempio n. 5
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
Esempio n. 6
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()
    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()
Esempio n. 8
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 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)
Esempio n. 10
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()]
Esempio n. 11
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!!!!!!!!!!!!!!!!!!'
Esempio n. 12
0
   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!!!!!!!!!!!!!!!!!!"
                )