106 lines
3.4 KiB
Python
106 lines
3.4 KiB
Python
|
import CatalogItem
|
||
|
import time
|
||
|
from toontown.toonbase import ToontownGlobals
|
||
|
from toontown.toonbase import TTLocalizer
|
||
|
from otp.otpbase import OTPLocalizer
|
||
|
from direct.interval.IntervalGlobal import *
|
||
|
from toontown.toontowngui import TTDialog
|
||
|
from toontown.estate import GardenTutorial
|
||
|
|
||
|
class CatalogGardenStarterItem(CatalogItem.CatalogItem):
|
||
|
|
||
|
def makeNewItem(self):
|
||
|
CatalogItem.CatalogItem.makeNewItem(self)
|
||
|
|
||
|
def getPurchaseLimit(self):
|
||
|
return 0
|
||
|
|
||
|
def reachedPurchaseLimit(self, avatar):
|
||
|
if self in avatar.onOrder or self in avatar.mailboxContents or self in avatar.onGiftOrder or self in avatar.awardMailboxContents or self in avatar.onAwardOrder or hasattr(avatar, 'gardenStarted') and avatar.getGardenStarted():
|
||
|
return 1
|
||
|
return 0
|
||
|
|
||
|
def saveHistory(self):
|
||
|
return 1
|
||
|
|
||
|
def getTypeName(self):
|
||
|
return TTLocalizer.GardenStarterTypeName
|
||
|
|
||
|
def getName(self):
|
||
|
return TTLocalizer.GardenStarterTypeName
|
||
|
|
||
|
def recordPurchase(self, avatar, optional):
|
||
|
if avatar:
|
||
|
self.notify.debug('rental -- has avatar')
|
||
|
estate = simbase.air.estateManager._lookupEstate(avatar)
|
||
|
if estate:
|
||
|
self.notify.debug('rental -- has estate')
|
||
|
estate.placeStarterGarden(avatar.doId)
|
||
|
else:
|
||
|
self.notify.warning('rental -- something not there')
|
||
|
return ToontownGlobals.P_ItemAvailable
|
||
|
|
||
|
def getPicture(self, avatar):
|
||
|
self.hasPicture = True
|
||
|
scale = 1
|
||
|
heading = 0
|
||
|
pitch = 30
|
||
|
roll = 0
|
||
|
spin = 1
|
||
|
down = -1
|
||
|
modelParent = loader.loadModel('phase_5.5/models/estate/watering_cans')
|
||
|
model = modelParent.find('**/water_canA')
|
||
|
scale = 0.5
|
||
|
heading = 45
|
||
|
return self.makeFrameModel(model, spin)
|
||
|
|
||
|
def output(self, store = -1):
|
||
|
return 'CatalogGardenStarterItem(%s)' % self.formatOptionalData(store)
|
||
|
|
||
|
def compareTo(self, other):
|
||
|
return 0
|
||
|
|
||
|
def getHashContents(self):
|
||
|
return 0
|
||
|
|
||
|
def getBasePrice(self):
|
||
|
return 50
|
||
|
|
||
|
def decodeDatagram(self, di, versionNumber, store):
|
||
|
CatalogItem.CatalogItem.decodeDatagram(self, di, versionNumber, store)
|
||
|
|
||
|
def encodeDatagram(self, dg, store):
|
||
|
CatalogItem.CatalogItem.encodeDatagram(self, dg, store)
|
||
|
|
||
|
def getDeliveryTime(self):
|
||
|
return 1
|
||
|
|
||
|
def isRental(self):
|
||
|
return 0
|
||
|
|
||
|
def isGift(self):
|
||
|
return 0
|
||
|
|
||
|
def acceptItem(self, mailbox, index, callback):
|
||
|
self.confirmGarden = TTDialog.TTGlobalDialog(doneEvent='confirmGarden', message=TTLocalizer.MessageConfirmGarden, command=Functor(self.handleGardenConfirm, mailbox, index, callback), style=TTDialog.TwoChoice)
|
||
|
self.confirmGarden.show()
|
||
|
|
||
|
def handleGardenConfirm(self, mailbox, index, callback, choice):
|
||
|
if choice > 0:
|
||
|
|
||
|
def handleTutorialDone():
|
||
|
self.gardenTutorial.destroy()
|
||
|
self.gardenTutorial = None
|
||
|
return
|
||
|
|
||
|
self.gardenTutorial = GardenTutorial.GardenTutorial(callback=handleTutorialDone)
|
||
|
if hasattr(mailbox, 'mailboxGui') and mailbox.mailboxGui:
|
||
|
mailbox.acceptItem(self, index, callback)
|
||
|
mailbox.mailboxGui.justExit()
|
||
|
else:
|
||
|
callback(ToontownGlobals.P_UserCancelled, self, index)
|
||
|
if self.confirmGarden:
|
||
|
self.confirmGarden.cleanup()
|
||
|
self.confirmGarden = None
|
||
|
return
|