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 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
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()
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)
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()]
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!!!!!!!!!!!!!!!!!!" )