[Orxonox-commit 2884] r7587 - in code/branches/menu/data/gui: layouts scripts
konrad at orxonox.net
konrad at orxonox.net
Wed Oct 27 13:11:24 CEST 2010
Author: konrad
Date: 2010-10-27 13:11:24 +0200 (Wed, 27 Oct 2010)
New Revision: 7587
Added:
code/branches/menu/data/gui/layouts/HostMenu.layout
code/branches/menu/data/gui/scripts/HostMenu.lua
Modified:
code/branches/menu/data/gui/layouts/MainMenu.layout
code/branches/menu/data/gui/layouts/MultiplayerMenu.layout
code/branches/menu/data/gui/scripts/MenuSheet.lua
code/branches/menu/data/gui/scripts/MultiplayerMenu.lua
Log:
changes in the multiplayer menu, 2 buttons instead of 3: host and join separated.
Added: code/branches/menu/data/gui/layouts/HostMenu.layout
===================================================================
--- code/branches/menu/data/gui/layouts/HostMenu.layout (rev 0)
+++ code/branches/menu/data/gui/layouts/HostMenu.layout 2010-10-27 11:11:24 UTC (rev 7587)
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<GUILayout >
+ <Window Type="MenuWidgets/StaticImage" Name="orxonox/HostMenuBackground" >
+ <Property Name="FrameEnabled" Value="False" />
+ <Property Name="InheritsAlpha" Value="False" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1,0},{1,0}}" />
+ <Property Name="BackgroundEnabled" Value="False" />
+
+
+ <Window Type="MenuWidgets/StaticText" Name="orxonox/HostMenuWindow" >
+ <Property Name="Text" Value="Multiplayer" />
+ <Property Name="Alpha" Value="0.8" />
+ <Property Name="InheritsAlpha" Value="False" />
+ <Property Name="HorzFormatting" Value="HorzCentred" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="VertFormatting" Value="TopAligned" />
+ <Property Name="UnifiedAreaRect" Value="{{0.25,0},{0.2875,0},{0.75,0},{0.6375,0}}" />
+ <Window Type="MenuWidgets/Listbox" Name="orxonox/HostMenuListbox" >
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.15,0},{0.95,0},{0.8,0}}" />
+ </Window>
+
+
+ <Window Type="MenuWidgets/RadioButton" Name="orxonox/HostMenuHostButton" >
+ <Property Name="Text" Value="Build Server"/>
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.2,0},{0.85,0},{0.4,0},{0.95,0}}" />
+ <Event Name="SelectStateChanged" Function="HostMenu.HostMenuBuildServerButton_clicked"/>
+ </Window>
+ <Window Type="MenuWidgets/RadioButton" Name="orxonox/HostMenuDedicatedButton" >
+ <Property Name="Text" Value="Dedicated" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.7,0},{0.85,0},{0.9,0},{0.95,0}}" />
+ <Event Name="SelectStateChanged" Function="HostMenu.HostMenuDedicatedButton_clicked"/>
+ </Window>
+
+ </Window>
+
+ <Window Type="MenuWidgets/Button" Name="orxonox/HostMenuStartButton" >
+ <Property Name="Text" Value="Start" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.2875,0},{0.6625,0},{0.4875,0},{0.7125,0}}" />
+ <Event Name="Clicked" Function="HostMenu.HostMenuStartButton_clicked"/>
+ </Window>
+ <Window Type="MenuWidgets/Button" Name="orxonox/HostMenuBackButton" >
+ <Property Name="Text" Value="Back" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0.6625,0},{0.7125,0},{0.7125,0}}" />
+ <Event Name="Clicked" Function="HostMenu.HostMenuBackButton_clicked"/>
+ </Window>
+
+ </Window>
+</GUILayout>
+
Modified: code/branches/menu/data/gui/layouts/MainMenu.layout
===================================================================
--- code/branches/menu/data/gui/layouts/MainMenu.layout 2010-10-26 19:14:45 UTC (rev 7586)
+++ code/branches/menu/data/gui/layouts/MainMenu.layout 2010-10-27 11:11:24 UTC (rev 7587)
@@ -9,7 +9,6 @@
<Property Name="BackgroundEnabled" Value="False" />
<Window Type="MenuWidgets/Button" Name="orxonox/QuickGameTestButton" >
<Property Name="Text" Value="Quickstart" />
- <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.2875,0},{0.6,0},{0.3375,0}}" />
<Event Name="Clicked" Function="MainMenu.QuickGameTestButton_clicked"/>
</Window>
Modified: code/branches/menu/data/gui/layouts/MultiplayerMenu.layout
===================================================================
--- code/branches/menu/data/gui/layouts/MultiplayerMenu.layout 2010-10-26 19:14:45 UTC (rev 7586)
+++ code/branches/menu/data/gui/layouts/MultiplayerMenu.layout 2010-10-27 11:11:24 UTC (rev 7587)
@@ -7,6 +7,8 @@
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1,0},{1,0}}" />
<Property Name="BackgroundEnabled" Value="False" />
+
+
<Window Type="MenuWidgets/StaticText" Name="orxonox/MultiplayerWindow" >
<Property Name="Text" Value="Multiplayer" />
<Property Name="Alpha" Value="0.8" />
@@ -19,16 +21,24 @@
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
<Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.15,0},{0.95,0},{0.8,0}}" />
</Window>
+
+ </Window>
+ <!--
+ Die Radiobuttons brauchen wir nicht mehr, dafuer ihre Funktionen.
+ Neue Buttons:
+ >join< >host<
+
+
<Window Type="MenuWidgets/RadioButton" Name="orxonox/MultiplayerJoinButton" >
<Property Name="Text" Value="Join" />
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
- <Property Name="UnifiedAreaRect" Value="{{0.1,0},{0.85,0},{0.3,0},{0.95,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.2,0},{0.85,0},{0.4,0},{0.95,0}}" />
<Event Name="SelectStateChanged" Function="MultiplayerMenu.MultiplayerJoinButton_clicked"/>
</Window>
<Window Type="MenuWidgets/RadioButton" Name="orxonox/MultiplayerHostButton" >
- <Property Name="Text" Value="Host" />
+ <Property Name="Text" Value="Build Server"/>
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
- <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.85,0},{0.6,0},{0.95,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.6,0},{0.85,0},{0.8,0},{0.95,0}}" />
<Event Name="SelectStateChanged" Function="MultiplayerMenu.MultiplayerHostButton_clicked"/>
</Window>
<Window Type="MenuWidgets/RadioButton" Name="orxonox/MultiplayerDedicatedButton" >
@@ -37,7 +47,32 @@
<Property Name="UnifiedAreaRect" Value="{{0.7,0},{0.85,0},{0.9,0},{0.95,0}}" />
<Event Name="SelectStateChanged" Function="MultiplayerMenu.MultiplayerDedicatedButton_clicked"/>
</Window>
- </Window>
+
+ -->
+
+ <Window Type="MenuWidgets/Button" Name="orxonox/MultiplayerBackButton" >
+ <Property Name="Text" Value="Back" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.7125,0},{0.8625,0},{0.9125,0},{0.9125,0}}" />
+ <Event Name="Clicked" Function="MultiplayerMenu.MultiplayerBackButton_clicked"/>
+ </Window>
+
+ <Window Type="MenuWidgets/Button" Name="orxonox/MultiplayerJoinButton2" >
+ <Property Name="Text" Value="Join" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.2875,0},{0.6625,0},{0.4875,0},{0.7125,0}}" />
+ <Event Name="Clicked" Function="MultiplayerMenu.MultiplayerJoinButton2_clicked"/>
+ </Window>
+
+ <Window Type="MenuWidgets/Button" Name="orxonox/MultiplayerHostButton2" >
+ <Property Name="Text" Value="Host" />
+ <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
+ <Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0.6625,0},{0.7125,0},{0.7125,0}}" />
+ <Event Name="Clicked" Function="MultiplayerMenu.MultiplayerHostButton2_clicked"/>
+ </Window>
+
+ <!--
+
<Window Type="MenuWidgets/Button" Name="orxonox/MultiplayerStartButton" >
<Property Name="Text" Value="Start" />
<Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
@@ -50,5 +85,9 @@
<Property Name="UnifiedAreaRect" Value="{{0.5125,0},{0.6625,0},{0.7125,0},{0.7125,0}}" />
<Event Name="Clicked" Function="MultiplayerMenu.MultiplayerBackButton_clicked"/>
</Window>
+
+ -->
+
</Window>
</GUILayout>
+
Added: code/branches/menu/data/gui/scripts/HostMenu.lua
===================================================================
--- code/branches/menu/data/gui/scripts/HostMenu.lua (rev 0)
+++ code/branches/menu/data/gui/scripts/HostMenu.lua 2010-10-27 11:11:24 UTC (rev 7587)
@@ -0,0 +1,83 @@
+-- HostMenu.lua
+
+local P = createMenuSheet("HostMenu")
+
+P.multiplayerMode = "startServer"
+
+function P.onShow()
+ if P.multiplayerMode == "startServer" then
+ local window = winMgr:getWindow("orxonox/HostMenuHostButton")
+ local button = tolua.cast(window,"CEGUI::RadioButton")
+ button:setSelected(true)
+ P.showLevelList()
+ end
+
+ if P.multiplayerMode == "startDedicated" then
+ local window = winMgr:getWindow("orxonox/HostMenuDedicatedButton")
+ local button = tolua.cast(window,"CEGUI::RadioButton")
+ button:setSelected(true)
+ P.showLevelList()
+ end
+
+end
+
+function P.HostMenuBuildServerButton_clicked(e)
+ P.multiplayerMode = "startServer"
+ P.showLevelList()
+end
+
+function P.HostMenuDedicatedButton_clicked(e)
+ P.multiplayerMode = "startDedicated"
+ P.showLevelList()
+end
+
+function P.HostMenuBackButton_clicked(e)
+ hideMenuSheet(P.name)
+end
+
+function P.HostMenuStartButton_clicked(e)
+ local choice = winMgr:getWindow("orxonox/HostMenuListbox"):getFirstSelectedItem()
+ if choice then
+ orxonox.LevelManager:getInstance():setDefaultLevel(choice:getText() .. ".oxw")
+ else
+ return
+ end
+ orxonox.execute(P.multiplayerMode)
+ hideAllMenuSheets()
+end
+
+
+
+function P.showLevelList()
+ local listbox = winMgr:getWindow("orxonox/HostMenuListbox")
+ CEGUI.toListbox(listbox):resetList()
+ local preselect = orxonox.LevelManager:getInstance():getDefaultLevel()
+ orxonox.LevelManager:getInstance():compileAvailableLevelList()
+ local levelList = {}
+ local index = 0
+ local level = ""
+ while true do
+ level = orxonox.LevelManager:getInstance():getAvailableLevelListItem(index)
+ if level == "" then
+ break
+ end
+ table.insert(levelList, level)
+ index = index + 1
+ end
+ table.sort(levelList)
+ index = 1
+ for k,v in pairs(levelList) do
+ local item = CEGUI.createListboxTextItem(v)
+ item:setSelectionBrushImage(menuImageSet, "MultiListSelectionBrush")
+ item:setID(index)
+ index = index + 1
+ CEGUI.toListbox(listbox):addItem(item)
+ if v .. ".oxw" == preselect then
+ listbox:setItemSelectState(item, true)
+ end
+ end
+end
+
+
+
+return P
Modified: code/branches/menu/data/gui/scripts/MenuSheet.lua
===================================================================
--- code/branches/menu/data/gui/scripts/MenuSheet.lua 2010-10-26 19:14:45 UTC (rev 7586)
+++ code/branches/menu/data/gui/scripts/MenuSheet.lua 2010-10-27 11:11:24 UTC (rev 7587)
@@ -15,7 +15,7 @@
local newSheet = GUISheet.new(_name)
newSheet.bHidePrevious = handleDefArg(_bHidePrevious, true)
newSheet.tShowCursor = handleDefArg(_tShowCusor, TriBool.True)
- newSheet.tUseKeyboard = handleDefArg(_tUseKeyboard, TriBool.Dontcare)
+ newSheet.tUseKeyboard = handleDefArg(_tUseKeyboard, TriBool.True)
newSheet.bBlockJoyStick = handleDefArg(_bBlockJoyStick, false)
setmetatable(newSheet, P)
Modified: code/branches/menu/data/gui/scripts/MultiplayerMenu.lua
===================================================================
--- code/branches/menu/data/gui/scripts/MultiplayerMenu.lua 2010-10-26 19:14:45 UTC (rev 7586)
+++ code/branches/menu/data/gui/scripts/MultiplayerMenu.lua 2010-10-27 11:11:24 UTC (rev 7587)
@@ -7,24 +7,7 @@
end
function P.onShow()
- if P.multiplayerMode == "startClient" then
- local window = winMgr:getWindow("orxonox/MultiplayerJoinButton")
- local button = tolua.cast(window,"CEGUI::RadioButton")
- button:setSelected(true)
- P.showServerList()
- end
- if P.multiplayerMode == "startServer" then
- local window = winMgr:getWindow("orxonox/MultiplayerHostButton")
- local button = tolua.cast(window,"CEGUI::RadioButton")
- button:setSelected(true)
- P.showLevelList()
- end
- if P.multiplayerMode == "startDedicated" then
- local window = winMgr:getWindow("orxonox/MultiplayerDedicatedButton")
- local button = tolua.cast(window,"CEGUI::RadioButton")
- button:setSelected(true)
- P.showLevelList()
- end
+ P.showServerList()
end
function P.MultiplayerJoinButton_clicked(e)
@@ -42,24 +25,21 @@
P.showLevelList()
end
-function P.MultiplayerStartButton_clicked(e)
+function P.MultiplayerHostButton2_clicked(e)
+ showMenuSheet("HostMenu", true)
+end
+
+
+function P.MultiplayerJoinButton2_clicked(e)
local choice = winMgr:getWindow("orxonox/MultiplayerListbox"):getFirstSelectedItem()
- if P.multiplayerMode == "startClient" then
- if choice then
- local client = orxonox.Client:getInstance()
- local index = tolua.cast(choice, "CEGUI::ListboxItem"):getID()
- client:setDestination( P.serverList[index][2], 55556 )
- else
- return
- end
+ if choice then
+ local client = orxonox.Client:getInstance()
+ local index = tolua.cast(choice, "CEGUI::ListboxItem"):getID()
+ client:setDestination( P.serverList[index][2], 55556 )
else
- if choice then
- orxonox.LevelManager:getInstance():setDefaultLevel(choice:getText() .. ".oxw")
- else
- return
- end
+ return
end
- orxonox.execute(P.multiplayerMode)
+ orxonox.execute("startClient")
hideAllMenuSheets()
end
More information about the Orxonox-commit
mailing list