61 lines
2.8 KiB
Python
61 lines
2.8 KiB
Python
|
from direct.gui.DirectGui import *
|
||
|
from direct.directnotify import DirectNotifyGlobal
|
||
|
from panda3d.core import *
|
||
|
from toontown.estate import GardenGlobals
|
||
|
from toontown.estate import PlantingGUI
|
||
|
from toontown.toonbase import TTLocalizer
|
||
|
|
||
|
class BeanRecipeGui(DirectFrame):
|
||
|
notify = DirectNotifyGlobal.directNotify.newCategory('PlantingGUI')
|
||
|
|
||
|
def __init__(self, parent, recipe, **kw):
|
||
|
left = 0
|
||
|
right = 0.445
|
||
|
bottom = 0
|
||
|
top = 0.08
|
||
|
borderWidth = 0.01
|
||
|
optiondefs = [('relief', DGG.RIDGE, None),
|
||
|
('state', 'normal', None),
|
||
|
('pos', (0, 0, 0), None),
|
||
|
('frameSize', (left,
|
||
|
right,
|
||
|
bottom,
|
||
|
top), None),
|
||
|
('borderWidth', (borderWidth, borderWidth), self.setBorderWidth)]
|
||
|
self.defineoptions(kw, optiondefs)
|
||
|
DirectFrame.__init__(self, parent)
|
||
|
self.initialiseoptions(BeanRecipeGui)
|
||
|
self.jellyBeanBoxList = []
|
||
|
xIncrement = 0.052
|
||
|
for i in xrange(len(recipe)):
|
||
|
beanIndex = GardenGlobals.BeanColorLetters.index(recipe[i])
|
||
|
self.createJellyBeanBox(beanIndex, borderWidth + xIncrement * i, borderWidth)
|
||
|
|
||
|
for j in xrange(len(recipe), GardenGlobals.getNumberOfShovelBoxes()):
|
||
|
self.createEmptyBeanBox(borderWidth + xIncrement * j, borderWidth)
|
||
|
|
||
|
return
|
||
|
|
||
|
def createJellyBeanBox(self, beanIndex, xPos, zPos):
|
||
|
geomColor = (1, 1, 1, 1)
|
||
|
state = DGG.NORMAL
|
||
|
command = None
|
||
|
xAdj = 0.03
|
||
|
zAdj = 0.03
|
||
|
newBox = DirectButton(parent=self, pos=(xPos + xAdj, 0, zPos + zAdj), geom=DGG.getDefaultDialogGeom(), geom_scale=(0.1, 1.0, 0.1), geom_color=geomColor, scale=(0.5, 1, 0.5), relief=None, state=state, command=command, extraArgs=[beanIndex], text=TTLocalizer.BeanColorWords[beanIndex], text_pos=(0.0, 0.1), text_scale=0.07, text_fg=Vec4(0, 0, 0, 0), text1_fg=Vec4(0, 0, 0, 1), text2_fg=Vec4(0, 0, 0, 1), text3_fg=Vec4(0, 0, 0, 0), clickSound=None, pressEffect=0)
|
||
|
beanParent = newBox.attachNewNode('bean_%d' % beanIndex)
|
||
|
PlantingGUI.loadJellyBean(beanParent, beanIndex)
|
||
|
self.jellyBeanBoxList.append(newBox)
|
||
|
return
|
||
|
|
||
|
def createEmptyBeanBox(self, xPos, zPos):
|
||
|
geomColor = (1, 1, 1, 1)
|
||
|
state = DGG.NORMAL
|
||
|
command = None
|
||
|
xAdj = 0.03
|
||
|
zAdj = 0.03
|
||
|
newBox = DirectButton(parent=self, pos=(xPos + xAdj, 0, zPos + zAdj), geom=DGG.getDefaultDialogGeom(), geom_scale=(0.1, 1.0, 0.1), geom_color=geomColor, scale=(0.5, 1, 0.5), relief=None, state=state, command=command, text='', text_pos=(0.0, 0.1), text_scale=0.07, text_fg=Vec4(0, 0, 0, 0), text1_fg=Vec4(0, 0, 0, 1), text2_fg=Vec4(0, 0, 0, 1), text3_fg=Vec4(0, 0, 0, 0), clickSound=None, pressEffect=0)
|
||
|
newBox.setColorScale(0.5, 0.5, 0.5, 1)
|
||
|
self.jellyBeanBoxList.append(newBox)
|
||
|
return
|