toontown-just-works/toontown/estate/BeanRecipeGui.py
2024-07-07 18:08:39 -05:00

60 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