Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/presentation/data/gui/scripts/SingleplayerMenu.lua @ 8637

Last change on this file since 8637 was 8637, checked in by dafrick, 13 years ago

Merging tutoriallevel3 branch into presentation branch.

  • Property svn:eol-style set to native
File size: 3.0 KB
RevLine 
[6363]1-- SingleplayerMenu.lua
2
[6746]3local P = createMenuSheet("SingleplayerMenu")
[6363]4
[7648]5P.levelList = {}
6P.itemList = {}
7P.showAll = false
8
[6746]9function P.onLoad()
[7648]10    local window = winMgr:getWindow("orxonox/SingleplayerShowAllCheckbox")
11    local button = tolua.cast(window,"CEGUI::Checkbox")
12    button:setSelected(false)
13    P.createLevelList()
[7689]14
15    --buttons are arranged in a 1x2 matrix
[8079]16    P:setButton(1, 1, {
[7689]17            ["button"] = winMgr:getWindow("orxonox/SingleplayerStartButton"),
[8079]18            ["callback"]  = P.SingleplayerStartButton_clicked
19    })
[7689]20
[8079]21    P:setButton(1, 2, {
[7689]22            ["button"] = winMgr:getWindow("orxonox/SingleplayerBackButton"),
[8079]23            ["callback"]  = P.SingleplayerBackButton_clicked
24    })
[7648]25end
26
[8079]27function P.onShow()
28    if P.showAll ~= orxonox.GUIManager:inDevMode() then
29        local window = winMgr:getWindow("orxonox/SingleplayerShowAllCheckbox")
30        local button = tolua.cast(window,"CEGUI::Checkbox")
31        P.showAll = not P.showAll
32        button:setSelected(P.showAll)
33        P.createLevelList()
34    end
35end
36
[7648]37function P.createLevelList()
38    P.levelList = {}
39    P.itemList = {}
40    local listbox = CEGUI.toListbox(winMgr:getWindow("orxonox/SingleplayerLevelListbox"))
41    listbox:resetList()
42    orxonox.GUIManager:setItemTooltipsEnabledHelper(listbox, true)
43    local preselect = orxonox.LevelManager:getInstance():getDefaultLevel()
44    local size = orxonox.LevelManager:getInstance():getNumberOfLevels()
[6363]45    local index = 0
[7648]46    local level = nil
47    while index < size do
48        level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index)
49        if level ~= nil then
50            if P.showAll or not level:hasTag("test") then
51                table.insert(P.levelList, level)
52            end
53        end
54        index = index + 1
[6363]55    end
[8637]56
[7648]57    for k,v in pairs(P.levelList) do
58        local item = CEGUI.createListboxTextItem(v:getName())
[6746]59        item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
[7648]60        listbox:addItem(item)
61        if v:getXMLFilename() == preselect then
[6363]62            listbox:setItemSelectState(item, true)
63        end
[7648]64        P.itemList[k] = listbox:getListboxItemFromIndex(k-1)
65        orxonox.GUIManager:setTooltipTextHelper(P.itemList[k], v:getDescription())
[6363]66    end
67end
68
69function P.SingleplayerStartButton_clicked(e)
[7648]70    local listbox = CEGUI.toListbox(winMgr:getWindow("orxonox/SingleplayerLevelListbox"))
71    local choice = listbox:getFirstSelectedItem()
72    if choice ~= nil then
73        local index = listbox:getItemIndex(choice)
74        local level = P.levelList[index+1]
75        if level ~= nil then
[7876]76            orxonox.execute("startGame " .. level:getXMLFilename())
[7648]77            hideAllMenuSheets()
78        end
[6363]79    end
80end
81
[7648]82function P.SingleplayerShowAll_clicked(e)
83    local checkbox = tolua.cast(winMgr:getWindow("orxonox/SingleplayerShowAllCheckbox"), "CEGUI::Checkbox")
84    local show = checkbox:isSelected()
85    if show ~= P.showAll then
86        P.showAll = show
87        P.createLevelList()
88   end
89end
90
[6363]91function P.SingleplayerBackButton_clicked(e)
[6746]92    hideMenuSheet(P.name)
[6363]93end
94
95return P
96
Note: See TracBrowser for help on using the repository browser.