mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-10-31 00:37:54 +00:00
Fix 63 or nick
This commit is contained in:
parent
50297ca489
commit
cc91c43036
1 changed files with 47 additions and 138 deletions
|
@ -92,53 +92,15 @@ class DistributedFurnitureManagerAI(DistributedObjectAI):
|
|||
self.interior.b_setWindows(self.windows.getBlob())
|
||||
|
||||
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:
|
||||
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)
|
||||
self.generateItem(item)
|
||||
|
||||
def getItems(self):
|
||||
items = CatalogItemList(store=CatalogItem.Customization|CatalogItem.Location)
|
||||
|
@ -271,6 +233,25 @@ class DistributedFurnitureManagerAI(DistributedObjectAI):
|
|||
pass
|
||||
|
||||
# Furniture-manipulation:
|
||||
|
||||
def generateItem(self, item):
|
||||
if item.getFlags() & FLTrunk:
|
||||
do = DistributedTrunkAI(self.air, self, item)
|
||||
elif item.getFlags() & FLCloset:
|
||||
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)
|
||||
return do
|
||||
|
||||
def moveItemToAttic(self, doId):
|
||||
item = self.getItemObject(doId)
|
||||
|
||||
|
@ -289,32 +270,9 @@ class DistributedFurnitureManagerAI(DistributedObjectAI):
|
|||
self.d_setAtticItems(self.getAtticItems())
|
||||
|
||||
item.posHpr = (x, y, z, h, p, r)
|
||||
object = self.generateItem(item)
|
||||
|
||||
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)
|
||||
|
||||
do.generateWithRequired(self.zoneId)
|
||||
self.items.append(do)
|
||||
|
||||
return (ToontownGlobals.FM_MovedItem, do.doId)
|
||||
return (ToontownGlobals.FM_MovedItem, object.doId)
|
||||
|
||||
def deleteItemFromAttic(self, blob, index):
|
||||
item = self.getAtticFurniture(self.atticItems, index)
|
||||
|
@ -493,96 +451,47 @@ class DistributedFurnitureManagerAI(DistributedObjectAI):
|
|||
return window
|
||||
return None
|
||||
|
||||
@magicWord(category=CATEGORY_PROGRAMMER, types=[])
|
||||
def findCloset():
|
||||
"""
|
||||
find the closet
|
||||
"""
|
||||
target = spellbook.getTarget()
|
||||
if not target:
|
||||
target = spellbook.getInvoker()
|
||||
if not target:
|
||||
return "Strange.. who are we talking about?"
|
||||
|
||||
if not hasattr(target, "estate") or not hasattr(target.estate, "houses"):
|
||||
return "no houses in the state"
|
||||
|
||||
for house in target.estate.houses:
|
||||
if house.doId == target.houseId:
|
||||
fm = house.interior.furnitureManager
|
||||
for item in fm.items:
|
||||
if item.catalogItem.getFlags() & FLCloset:
|
||||
return 'items: %s'%(str(item.catalogItem))
|
||||
for item in fm.atticItems:
|
||||
if item.getFlags() & FLCloset:
|
||||
return 'atticItems: %s'%(str(item))
|
||||
return "I cannot find your closet"
|
||||
|
||||
@magicWord(category=CATEGORY_PROGRAMMER, types=[])
|
||||
def recoverCloset():
|
||||
"""
|
||||
recover the closet
|
||||
"""
|
||||
target = spellbook.getTarget()
|
||||
if not target:
|
||||
target = spellbook.getInvoker()
|
||||
if not target:
|
||||
return "Strange.. who are we talking about?"
|
||||
|
||||
if not hasattr(target, "estate") or not hasattr(target.estate, "houses"):
|
||||
return "no houses in the state"
|
||||
|
||||
for house in target.estate.houses:
|
||||
if house.doId == target.houseId:
|
||||
fm = house.interior.furnitureManager
|
||||
for item in reversed(fm.items):
|
||||
if item.catalogItem.getFlags() & FLCloset:
|
||||
fm.moveItemToAttic(item.doId);
|
||||
return "Moved the closet"
|
||||
fm.saveToHouse()
|
||||
return "I cannot find your closet"
|
||||
|
||||
@magicWord(category=CATEGORY_PROGRAMMER, types=[])
|
||||
@magicWord(category=CATEGORY_PROGRAMMER)
|
||||
def fillAttic():
|
||||
"""
|
||||
move everything to the attic
|
||||
Move everything to the attic.
|
||||
"""
|
||||
target = spellbook.getTarget()
|
||||
if not target:
|
||||
target = spellbook.getInvoker()
|
||||
if not target:
|
||||
return "Strange.. who are we talking about?"
|
||||
|
||||
if not hasattr(target, "estate") or not hasattr(target.estate, "houses"):
|
||||
return "no houses in the state"
|
||||
return "The target is not in an estate!"
|
||||
|
||||
for house in target.estate.houses:
|
||||
if house.doId == target.houseId:
|
||||
fm = house.interior.furnitureManager
|
||||
for item in reversed(fm.items):
|
||||
fm.moveItemToAttic(item.doId);
|
||||
fm.saveToHouse()
|
||||
return "everything has been moved to the attic"
|
||||
manager = house.interior.furnitureManager
|
||||
|
||||
@magicWord(category=CATEGORY_PROGRAMMER, types=[])
|
||||
for item in reversed(manager.items):
|
||||
manager.moveItemToAttic(item.doId)
|
||||
|
||||
manager.saveToHouse()
|
||||
return "Everything has been moved to the attic!"
|
||||
|
||||
return "The target is not in his estate!"
|
||||
|
||||
@magicWord(category=CATEGORY_PROGRAMMER)
|
||||
def emptyHouse():
|
||||
"""
|
||||
delete everything in the house
|
||||
Delete everything in the house.
|
||||
"""
|
||||
target = spellbook.getTarget()
|
||||
if not target:
|
||||
target = spellbook.getInvoker()
|
||||
if not target:
|
||||
return "Strange.. who are we talking about?"
|
||||
|
||||
if not hasattr(target, "estate") or not hasattr(target.estate, "houses"):
|
||||
return "no houses in the state"
|
||||
return "The target is not in an estate!"
|
||||
|
||||
for house in target.estate.houses:
|
||||
if house.doId == target.houseId:
|
||||
fm = house.interior.furnitureManager
|
||||
for item in reversed(fm.items):
|
||||
manager = house.interior.furnitureManager
|
||||
|
||||
for item in reversed(manager.items):
|
||||
item.destroy()
|
||||
fm.items.remove(item)
|
||||
fm.saveToHouse()
|
||||
return "The house is empty"
|
||||
|
||||
manager.items = []
|
||||
manager.saveToHouse()
|
||||
return "Everything has been deleted!"
|
||||
|
||||
return "The target is not in his estate!"
|
Loading…
Reference in a new issue