149 lines
4.5 KiB
Python
149 lines
4.5 KiB
Python
from direct.distributed.DistributedObjectAI import DistributedObjectAI
|
|
from DistributedFurnitureManagerAI import *
|
|
from toontown.catalog import CatalogItem
|
|
from toontown.catalog.CatalogWindowItem import CatalogWindowItem
|
|
from toontown.catalog.CatalogWallpaperItem import CatalogWallpaperItem
|
|
from toontown.catalog.CatalogMouldingItem import CatalogMouldingItem
|
|
from toontown.catalog.CatalogFlooringItem import CatalogFlooringItem
|
|
from toontown.catalog.CatalogWainscotingItem import CatalogWainscotingItem
|
|
from DNAFurnitureReaderAI import DNAFurnitureReaderAI
|
|
from toontown.dna.DNAParser import *
|
|
import HouseGlobals
|
|
import random
|
|
|
|
# The house interior DNA files for each
|
|
houseInteriors = [
|
|
'phase_5.5/dna/house_interior3.pdna',
|
|
'phase_5.5/dna/house_interior4.pdna',
|
|
'phase_5.5/dna/house_interior5.pdna',
|
|
'phase_5.5/dna/house_interior7.pdna',
|
|
'phase_5.5/dna/house_interior8.pdna',
|
|
'phase_5.5/dna/house_interior10.pdna',
|
|
]
|
|
|
|
defaultWindows = [
|
|
CatalogWindowItem(20, placement=2), CatalogWindowItem(20, placement=4), CatalogWindowItem(20, placement=6)
|
|
]
|
|
|
|
defaultWallpaper = [
|
|
CatalogWallpaperItem(1110, 0, 1010, 0),
|
|
CatalogMouldingItem(1000, 2),
|
|
CatalogFlooringItem(1000, 4),
|
|
CatalogWainscotingItem(1010, 4),
|
|
CatalogWallpaperItem(1110, 0, 1010, 0),
|
|
CatalogMouldingItem(1000, 2),
|
|
CatalogFlooringItem(1000, 4),
|
|
CatalogWainscotingItem(1010, 4),
|
|
CatalogWallpaperItem(1110, 0, 1010, 0),
|
|
CatalogMouldingItem(1000, 2),
|
|
CatalogFlooringItem(1000, 4),
|
|
CatalogWainscotingItem(1010, 4),
|
|
CatalogWallpaperItem(1110, 0, 1010, 0),
|
|
CatalogMouldingItem(1000, 2),
|
|
CatalogFlooringItem(1000, 4),
|
|
CatalogWainscotingItem(1010, 4),
|
|
]
|
|
|
|
|
|
class DistributedHouseInteriorAI(DistributedObjectAI):
|
|
notify = directNotify.newCategory("DistributedHouseInteriorAI")
|
|
|
|
def __init__(self, air, house):
|
|
DistributedObjectAI.__init__(self, air)
|
|
|
|
self.house = house
|
|
self.houseId = 0
|
|
self.houseIndex = 0
|
|
self.wallpaper = ''
|
|
self.windows = ''
|
|
|
|
self.furnitureManager = DistributedFurnitureManagerAI(self.air, self.house, self)
|
|
|
|
def announceGenerate(self):
|
|
DistributedObjectAI.announceGenerate(self)
|
|
|
|
self.furnitureManager.generateWithRequired(self.zoneId)
|
|
|
|
def delete(self):
|
|
DistributedObjectAI.delete(self)
|
|
|
|
self.furnitureManager.delete()
|
|
|
|
def initialize(self):
|
|
# Get DNA file appropriate to this house...
|
|
dnaFile = houseInteriors[self.houseIndex]
|
|
|
|
# Load DNA...
|
|
dnaStorage = DNAStorage()
|
|
dnaData = loadDNAFileAI(dnaStorage, dnaFile)
|
|
|
|
# Read it into furniture...
|
|
furnitureReader = DNAFurnitureReaderAI(dnaData, self.house.gender, [-11, 2, 0, 0, 0, 0])
|
|
|
|
# Set furniture:
|
|
self.furnitureManager.setItems(furnitureReader.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 setHouseId(self, houseId):
|
|
self.houseId = houseId
|
|
|
|
def d_setHouseId(self, houseId):
|
|
self.sendUpdate('setHouseId', [houseId])
|
|
|
|
def b_setHouseId(self, houseId):
|
|
self.setHouseId(houseId)
|
|
self.d_setHouseId(houseId)
|
|
|
|
def getHouseId(self):
|
|
return self.houseId
|
|
|
|
def setHouseIndex(self, index):
|
|
self.houseIndex = index
|
|
|
|
def d_setHouseIndex(self, index):
|
|
self.sendUpdate('setHouseIndex', [index])
|
|
|
|
def b_setHouseIndex(self, index):
|
|
self.setHouseIndex(index)
|
|
self.d_setHouseIndex(index)
|
|
|
|
def getHouseIndex(self):
|
|
return self.houseIndex
|
|
|
|
def setWallpaper(self, wallpaper):
|
|
self.wallpaper = wallpaper
|
|
|
|
def d_setWallpaper(self, wallpaper):
|
|
self.sendUpdate('setWallpaper', [wallpaper])
|
|
|
|
def b_setWallpaper(self, wallpaper):
|
|
self.setWallpaper(wallpaper)
|
|
if self.isGenerated():
|
|
self.d_setWallpaper(wallpaper)
|
|
|
|
def getWallpaper(self):
|
|
return self.wallpaper
|
|
|
|
def setWindows(self, windows):
|
|
self.windows = windows
|
|
|
|
def d_setWindows(self, windows):
|
|
self.sendUpdate('setWindows', [windows])
|
|
|
|
def b_setWindows(self, windows):
|
|
self.setWindows(windows)
|
|
if self.isGenerated():
|
|
self.d_setWindows(windows)
|
|
|
|
def getWindows(self):
|
|
return self.windows
|