Exemple #1
0
    def __init__(self, gamePlayState, devMode):
        pygame.sprite.OrderedUpdates.__init__(self)

        self.devMode = devMode

        self.theModuleLoader = ModuleLoader(globals(), locals())
        self.theModuleLoader.loadModules("modules")

        self.reloadTime = 1.000
        self.curTimeTillReload = self.reloadTime

        #self.devPanel = StaticImage(loadImage("devmenu.png"), (10, 10))
        #self.add(self.devPanel)
        self.open = False

        self.rerenderEverythingIn = -1

        #This boolean is set to true after the menu is closed.
        #It is used by draw() to tell when the menu was open last frame,
        #so that it can return an update rect that covers the whole devmenu.
        #So it may be cleared.
        self.wasOpen = False

        #This list will contain click events that are
        # added to it during the main.py main loop.
        #It is processed when DevMenu.update() is called
        self.clicks = {
            'mouse1up': [],
            'mouse1down': [],
            'mouse2up': [],
            'mouse2down': [],
            'mouse3up': [],
            'mouse3down': []
        }

        #All the sprites that are also buttons.
        self.buttons = []

        self.playState = gamePlayState

        self.masterEntitySet = MasterEntitySet()
        #If in devMode, force load every damn ent.
        if self.devMode:
            self.masterEntitySet.loadAllEnts()

        self.defaultMenuState = DefaultMenuState(self)

        self.loadMenuState(self.defaultMenuState)

        #F*****G HORRIBLE HIDEOUS HACK OH GOD WHY.
        #Foricbly reload everything in EntitySets so that they're actually added
        #to the MasterEntSet, I should really find someway of doing this right
        #the first time.
        #self.theModuleLoader.loadModules( os.path.join( "modules", "entitysets" ) )
        #self.masterEntSet.updateEnts()

        self.draggingMenu = False
        self.draggedSpot = [0, 0]

        self.playState.devMenuRef = weakref.ref(self)