[Orxonox-commit 6725] r11353 - in code/trunk: . data/defaultConfig data/gui/scripts data/overlays src/modules/overlays src/modules/overlays/hud src/modules/pickup src/modules/pickup/items src/orxonox src/orxonox/controllers src/orxonox/gamestates src/orxonox/interfaces
patricwi at orxonox.net
patricwi at orxonox.net
Thu Mar 9 14:46:21 CET 2017
Author: patricwi
Date: 2017-03-09 14:46:20 +0100 (Thu, 09 Mar 2017)
New Revision: 11353
Added:
code/trunk/src/modules/overlays/hud/HUDPickupItem.cc
code/trunk/src/modules/overlays/hud/HUDPickupItem.h
code/trunk/src/modules/overlays/hud/HUDPickupSystem.cc
code/trunk/src/modules/overlays/hud/HUDPickupSystem.h
Modified:
code/trunk/
code/trunk/README
code/trunk/data/defaultConfig/keybindings.ini
code/trunk/data/gui/scripts/KeyBindMenu.lua
code/trunk/data/overlays/HUDTemplates3.oxo
code/trunk/data/overlays/HUDTemplatesFPS.oxo
code/trunk/src/modules/overlays/OverlaysPrereqs.h
code/trunk/src/modules/overlays/hud/CMakeLists.txt
code/trunk/src/modules/pickup/CMakeLists.txt
code/trunk/src/modules/pickup/PickupManager.cc
code/trunk/src/modules/pickup/PickupManager.h
code/trunk/src/modules/pickup/items/SpeedPickup.h
code/trunk/src/orxonox/CMakeLists.txt
code/trunk/src/orxonox/controllers/HumanController.h
code/trunk/src/orxonox/gamestates/GSLevel.cc
code/trunk/src/orxonox/gamestates/GSLevel.h
code/trunk/src/orxonox/interfaces/Pickupable.h
Log:
merged HUD branch to trunk
Property changes on: code/trunk
___________________________________________________________________
Modified: svn:mergeinfo
- /code/branches/AI_HS15:10640-10832
/code/branches/ParticleEffectsFS15:10309-10612
/code/branches/Racingbot:9388-9513
/code/branches/SciptableControllerFS15:10308-10613
/code/branches/ScriptableController:9999-10075
/code/branches/ai:6592-7033
/code/branches/ai2:8721-8880
/code/branches/bigships:8137-8588
/code/branches/buildsystem:1874-2276,2278-2400
/code/branches/buildsystem2:2506-2658
/code/branches/buildsystem3:2662-2708
/code/branches/campaignHS15:10639-10973
/code/branches/ceguilua:1802-1808
/code/branches/chat:6527-6797
/code/branches/chat2:6836-6910
/code/branches/clangenb:10385-10609
/code/branches/console:5941-6104
/code/branches/consolecommands2:6451-7178
/code/branches/consolecommands3:7178-7283
/code/branches/core3:1572-1739
/code/branches/core4:3221-3224,3227,3234-3238,3242,3244-3250,3252-3254,3256,3259-3261,3264-3265,3268-3275,3277-3278,3280,3284-3285,3287,3289-3294,3305,3309-3310
/code/branches/core5:5768-5928,6009
/code/branches/core6:9552-9666
/code/branches/core7:10328-10623
/code/branches/cpp11:10439-10732
/code/branches/cpp11_v2:10732-11067
/code/branches/cpp11_v3:11053-11070
/code/branches/data_cleanup:7537-7686
/code/branches/doc:7290-7400
/code/branches/dockingsystem:8101-8192
/code/branches/dockingsystem2:8196-8560
/code/branches/dynamicmatch:6584-7030
/code/branches/environment3:8887-8975
/code/branches/explosionChunksHS15:10641-10961
/code/branches/fabienHS15:10685-11033
/code/branches/formation:8885-8991
/code/branches/formationFS15:10320-10610
/code/branches/formationupdate:9580-9624
/code/branches/fps:6591-7072
/code/branches/gamecontent:8893-8968
/code/branches/gameimmersion:8102-8577
/code/branches/gamestate:6430-6572,6621-6661
/code/branches/gamestates2:6594-6745
/code/branches/gametypes:2826-3031
/code/branches/gcc43:1580
/code/branches/gui:1635-1723,2795-2894
/code/branches/hoverHS15:10633-10959
/code/branches/hud:8883-8986
/code/branches/hudHS14:10083-10241
/code/branches/hudelements:6584-6941
/code/branches/hudimprovements:7920-8672
/code/branches/ingamemenu:6000-6023
/code/branches/input:1629-1636
/code/branches/invaders:9694-9896
/code/branches/ipv6:7293-7458
/code/branches/keckslevelHS14:10082-10222
/code/branches/kicklib:7940-8096,8098-8277
/code/branches/kicklib2:8282-8350
/code/branches/largeShip1:9384-9515
/code/branches/lastmanstanding:7479-7644
/code/branches/lastmanstanding3:7903-8175
/code/branches/levelElias:9697-9921
/code/branches/levelKaan:9695-9921
/code/branches/levelMichael:9696-9921
/code/branches/leveljoemeHS14:10087-10223
/code/branches/libraries:5612-5692
/code/branches/libraries2:5703-5737
/code/branches/libs:9668-9674
/code/branches/lod:6586-6911
/code/branches/lodfinal:2372-2411
/code/branches/mac_osx:7789-8128,8135
/code/branches/map:2801-3086,3089
/code/branches/masterserver:7502-7738
/code/branches/masterserverfix:8933-8936
/code/branches/menu:5941-6146,6148,7536-7687
/code/branches/menue:8884-8976
/code/branches/minigame4DHS14:10081-10230
/code/branches/miniprojects:2754-2824
/code/branches/modularships:9994-10071
/code/branches/multiplayerFS15:10324-10611
/code/branches/netp2:2835-2988
/code/branches/netp3:2988-3082
/code/branches/netp6:3214-3302
/code/branches/network:2356
/code/branches/network2:6434-6465
/code/branches/network3:7196-7344
/code/branches/network4:7497-7755
/code/branches/network5:7757-7781
/code/branches/network6:7823-8315
/code/branches/network64:2210-2355
/code/branches/newlevel2012:9033-9244
/code/branches/notifications:7314-7401
/code/branches/objecthierarchy:1911-2085,2100,2110-2169
/code/branches/objecthierarchy2:2171-2479
/code/branches/ois_update:7506-7788
/code/branches/output:8739-8857
/code/branches/overlay:2117-2385
/code/branches/pCuts:9023-9284
/code/branches/particleEffectsHS15:10644-10962
/code/branches/particles:2829-3085
/code/branches/particles2:6050-6106,6109
/code/branches/pch:3113-3194
/code/branches/physics:1912-2055,2107-2439
/code/branches/physics_merge:2436-2457
/code/branches/pickup:8145-8555
/code/branches/pickup2:5942-6405
/code/branches/pickup2012:9029-9189
/code/branches/pickup3:6418-6523
/code/branches/pickup4:6594-6710
/code/branches/pickups:1926-2086,2127,2827-2915
/code/branches/pickups2:2107-2497,2915-3071
/code/branches/pickupsFS14:10000-10259
/code/branches/planetLevelHS15:10637-10966
/code/branches/png2:7262-7263
/code/branches/portals:8087-8455
/code/branches/portals2:8460-8602
/code/branches/ppspickups1:6552-6708
/code/branches/ppspickups2:6527-6532,6554-6709
/code/branches/ppspickups3:6757-6997
/code/branches/ppspickups4:7003-7089
/code/branches/presentation:2369-2652,2654-2660,7736-7786,8500-8705
/code/branches/presentation2:6106-6416,7787-7800
/code/branches/presentation2011:8974-9015
/code/branches/presentation2012:9189-9268
/code/branches/presentation2012merge:9266-9347
/code/branches/presentation3:6913-7162
/code/branches/presentationFS14:10069-10215
/code/branches/presentationFS15:10499
/code/branches/presentationFS15merge:10595-10621
/code/branches/presentationHS12:9481-9525
/code/branches/presentationHS13:9891-9938
/code/branches/presentationHS14merge:10222-10257
/code/branches/presentationHS15:10959-11055
/code/branches/questsystem:1894-2088
/code/branches/questsystem2:2107-2259
/code/branches/questsystem5:2776-2905
/code/branches/radarDreiD:9690-9901
/code/branches/releasetodo:7614-7647
/code/branches/resource:3327-3366
/code/branches/resource2:3372-5694
/code/branches/rocket:6523-6950
/code/branches/rocket2:6953-6970
/code/branches/script_trigger:1295-1953,1955
/code/branches/sfxThilo:9691-9917
/code/branches/shaders:9379-11072
/code/branches/shaders_merge:11072-11079
/code/branches/shipSelection:9038-9206
/code/branches/skybox2:6559-6989
/code/branches/sound:2829-3010
/code/branches/sound2012:9205-9214
/code/branches/sound3:5941-6102
/code/branches/soundEffects:9382-11020
/code/branches/spaceNavigation:9381-9497
/code/branches/spaceboundaries:8085-8457
/code/branches/spaceboundaries2:8460-8613
/code/branches/spacerace:8182-8630
/code/branches/spaceraceTwo:8881-8996
/code/branches/spacestationentry:9699-9905
/code/branches/steering:5949-6091,8140-8595
/code/branches/storymodeHS14:10085-10254
/code/branches/surfaceRace:9028-9199
/code/branches/surfaceraceHS14:10080-10236
/code/branches/testing:9015-9549
/code/branches/tetris:8100-8563
/code/branches/towerdefenseFS15:10283-10614
/code/branches/towerdefenseHS14:10086-10247
/code/branches/turret:9380-9501
/code/branches/turretFS14:9998-10070
/code/branches/tutoriallevel:7827-8370
/code/branches/tutoriallevel2:8370-8452
/code/branches/tutoriallevel3:8453-8636
/code/branches/unity_build:8440-8716
/code/branches/usability:7915-8078
/code/branches/weapon:1925-2094
/code/branches/weapon2:2107-2488
/code/branches/weaponFS15:10302-10615
/code/branches/weapons:2897-3051,8143-8591
/code/branches/weaponsystem:2742-2890
/code/branches/weaponupdateHS14:10084-10237
+ /code/branches/AI_HS15:10640-10832
/code/branches/HUD_HS16:11212-11350
/code/branches/ParticleEffectsFS15:10309-10612
/code/branches/Racingbot:9388-9513
/code/branches/SciptableControllerFS15:10308-10613
/code/branches/ScriptableController:9999-10075
/code/branches/ai:6592-7033
/code/branches/ai2:8721-8880
/code/branches/bigships:8137-8588
/code/branches/buildsystem:1874-2276,2278-2400
/code/branches/buildsystem2:2506-2658
/code/branches/buildsystem3:2662-2708
/code/branches/campaignHS15:10639-10973
/code/branches/ceguilua:1802-1808
/code/branches/chat:6527-6797
/code/branches/chat2:6836-6910
/code/branches/clangenb:10385-10609
/code/branches/console:5941-6104
/code/branches/consolecommands2:6451-7178
/code/branches/consolecommands3:7178-7283
/code/branches/core3:1572-1739
/code/branches/core4:3221-3224,3227,3234-3238,3242,3244-3250,3252-3254,3256,3259-3261,3264-3265,3268-3275,3277-3278,3280,3284-3285,3287,3289-3294,3305,3309-3310
/code/branches/core5:5768-5928,6009
/code/branches/core6:9552-9666
/code/branches/core7:10328-10623
/code/branches/cpp11:10439-10732
/code/branches/cpp11_v2:10732-11067
/code/branches/cpp11_v3:11053-11070
/code/branches/data_cleanup:7537-7686
/code/branches/doc:7290-7400
/code/branches/dockingsystem:8101-8192
/code/branches/dockingsystem2:8196-8560
/code/branches/dynamicmatch:6584-7030
/code/branches/environment3:8887-8975
/code/branches/explosionChunksHS15:10641-10961
/code/branches/fabienHS15:10685-11033
/code/branches/formation:8885-8991
/code/branches/formationFS15:10320-10610
/code/branches/formationupdate:9580-9624
/code/branches/fps:6591-7072
/code/branches/gamecontent:8893-8968
/code/branches/gameimmersion:8102-8577
/code/branches/gamestate:6430-6572,6621-6661
/code/branches/gamestates2:6594-6745
/code/branches/gametypes:2826-3031
/code/branches/gcc43:1580
/code/branches/gui:1635-1723,2795-2894
/code/branches/hoverHS15:10633-10959
/code/branches/hud:8883-8986
/code/branches/hudHS14:10083-10241
/code/branches/hudelements:6584-6941
/code/branches/hudimprovements:7920-8672
/code/branches/ingamemenu:6000-6023
/code/branches/input:1629-1636
/code/branches/invaders:9694-9896
/code/branches/ipv6:7293-7458
/code/branches/keckslevelHS14:10082-10222
/code/branches/kicklib:7940-8096,8098-8277
/code/branches/kicklib2:8282-8350
/code/branches/largeShip1:9384-9515
/code/branches/lastmanstanding:7479-7644
/code/branches/lastmanstanding3:7903-8175
/code/branches/levelElias:9697-9921
/code/branches/levelKaan:9695-9921
/code/branches/levelMichael:9696-9921
/code/branches/leveljoemeHS14:10087-10223
/code/branches/libraries:5612-5692
/code/branches/libraries2:5703-5737
/code/branches/libs:9668-9674
/code/branches/lod:6586-6911
/code/branches/lodfinal:2372-2411
/code/branches/mac_osx:7789-8128,8135
/code/branches/map:2801-3086,3089
/code/branches/masterserver:7502-7738
/code/branches/masterserverfix:8933-8936
/code/branches/menu:5941-6146,6148,7536-7687
/code/branches/menue:8884-8976
/code/branches/minigame4DHS14:10081-10230
/code/branches/miniprojects:2754-2824
/code/branches/modularships:9994-10071
/code/branches/multiplayerFS15:10324-10611
/code/branches/netp2:2835-2988
/code/branches/netp3:2988-3082
/code/branches/netp6:3214-3302
/code/branches/network:2356
/code/branches/network2:6434-6465
/code/branches/network3:7196-7344
/code/branches/network4:7497-7755
/code/branches/network5:7757-7781
/code/branches/network6:7823-8315
/code/branches/network64:2210-2355
/code/branches/newlevel2012:9033-9244
/code/branches/notifications:7314-7401
/code/branches/objecthierarchy:1911-2085,2100,2110-2169
/code/branches/objecthierarchy2:2171-2479
/code/branches/ois_update:7506-7788
/code/branches/output:8739-8857
/code/branches/overlay:2117-2385
/code/branches/pCuts:9023-9284
/code/branches/particleEffectsHS15:10644-10962
/code/branches/particles:2829-3085
/code/branches/particles2:6050-6106,6109
/code/branches/pch:3113-3194
/code/branches/physics:1912-2055,2107-2439
/code/branches/physics_merge:2436-2457
/code/branches/pickup:8145-8555
/code/branches/pickup2:5942-6405
/code/branches/pickup2012:9029-9189
/code/branches/pickup3:6418-6523
/code/branches/pickup4:6594-6710
/code/branches/pickups:1926-2086,2127,2827-2915
/code/branches/pickups2:2107-2497,2915-3071
/code/branches/pickupsFS14:10000-10259
/code/branches/planetLevelHS15:10637-10966
/code/branches/png2:7262-7263
/code/branches/portals:8087-8455
/code/branches/portals2:8460-8602
/code/branches/ppspickups1:6552-6708
/code/branches/ppspickups2:6527-6532,6554-6709
/code/branches/ppspickups3:6757-6997
/code/branches/ppspickups4:7003-7089
/code/branches/presentation:2369-2652,2654-2660,7736-7786,8500-8705
/code/branches/presentation2:6106-6416,7787-7800
/code/branches/presentation2011:8974-9015
/code/branches/presentation2012:9189-9268
/code/branches/presentation2012merge:9266-9347
/code/branches/presentation3:6913-7162
/code/branches/presentationFS14:10069-10215
/code/branches/presentationFS15:10499
/code/branches/presentationFS15merge:10595-10621
/code/branches/presentationHS12:9481-9525
/code/branches/presentationHS13:9891-9938
/code/branches/presentationHS14merge:10222-10257
/code/branches/presentationHS15:10959-11055
/code/branches/questsystem:1894-2088
/code/branches/questsystem2:2107-2259
/code/branches/questsystem5:2776-2905
/code/branches/radarDreiD:9690-9901
/code/branches/releasetodo:7614-7647
/code/branches/resource:3327-3366
/code/branches/resource2:3372-5694
/code/branches/rocket:6523-6950
/code/branches/rocket2:6953-6970
/code/branches/script_trigger:1295-1953,1955
/code/branches/sfxThilo:9691-9917
/code/branches/shaders:9379-11072
/code/branches/shaders_merge:11072-11079
/code/branches/shipSelection:9038-9206
/code/branches/skybox2:6559-6989
/code/branches/sound:2829-3010
/code/branches/sound2012:9205-9214
/code/branches/sound3:5941-6102
/code/branches/soundEffects:9382-11020
/code/branches/spaceNavigation:9381-9497
/code/branches/spaceboundaries:8085-8457
/code/branches/spaceboundaries2:8460-8613
/code/branches/spacerace:8182-8630
/code/branches/spaceraceTwo:8881-8996
/code/branches/spacestationentry:9699-9905
/code/branches/steering:5949-6091,8140-8595
/code/branches/storymodeHS14:10085-10254
/code/branches/surfaceRace:9028-9199
/code/branches/surfaceraceHS14:10080-10236
/code/branches/testing:9015-9549
/code/branches/tetris:8100-8563
/code/branches/towerdefenseFS15:10283-10614
/code/branches/towerdefenseHS14:10086-10247
/code/branches/turret:9380-9501
/code/branches/turretFS14:9998-10070
/code/branches/tutoriallevel:7827-8370
/code/branches/tutoriallevel2:8370-8452
/code/branches/tutoriallevel3:8453-8636
/code/branches/unity_build:8440-8716
/code/branches/usability:7915-8078
/code/branches/weapon:1925-2094
/code/branches/weapon2:2107-2488
/code/branches/weaponFS15:10302-10615
/code/branches/weapons:2897-3051,8143-8591
/code/branches/weaponsystem:2742-2890
/code/branches/weaponupdateHS14:10084-10237
Modified: code/trunk/README
===================================================================
--- code/trunk/README 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/README 2017-03-09 13:46:20 UTC (rev 11353)
@@ -19,3 +19,4 @@
Cheers,
The Orxonox Development Team
+
Modified: code/trunk/data/defaultConfig/keybindings.ini
===================================================================
--- code/trunk/data/defaultConfig/keybindings.ini 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/data/defaultConfig/keybindings.ini 2017-03-09 13:46:20 UTC (rev 11353)
@@ -69,34 +69,34 @@
KeyNextTrack=
KeyNoConvert=
KeyNumLock=
-KeyNumRow0=
-KeyNumRow1="toggleFormationFlight"
-KeyNumRow2="FFChangeMode"
-KeyNumRow3=
-KeyNumRow4=
-KeyNumRow5=
-KeyNumRow6=
-KeyNumRow7=
-KeyNumRow8=
-KeyNumRow9=
-KeyNumpad0=
-KeyNumpad1=
-KeyNumpad2=
-KeyNumpad3=
-KeyNumpad4=
-KeyNumpad5=
-KeyNumpad6=
-KeyNumpad7=
-KeyNumpad8=
-KeyNumpad9=
+KeyNumRow0="useUnusePickup 0"
+KeyNumRow1="useUnusePickup 1"
+KeyNumRow2="useUnusePickup 2"
+KeyNumRow3="useUnusePickup 3"
+KeyNumRow4="useUnusePickup 4"
+KeyNumRow5="useUnusePickup 5"
+KeyNumRow6="useUnusePickup 6"
+KeyNumRow7="useUnusePickup 7"
+KeyNumRow8="useUnusePickup 8"
+KeyNumRow9="useUnusePickup 9"
+KeyNumpad0="useUnusePickup 0"
+KeyNumpad1="useUnusePickup 1"
+KeyNumpad2="useUnusePickup 2"
+KeyNumpad3="useUnusePickup 3"
+KeyNumpad4="useUnusePickup 4"
+KeyNumpad5="useUnusePickup 5"
+KeyNumpad6="useUnusePickup 6"
+KeyNumpad7="useUnusePickup 7"
+KeyNumpad8="useUnusePickup 8"
+KeyNumpad9="useUnusePickup 9"
KeyNumpadAdd=
KeyNumpadComma=
KeyNumpadEnter=
KeyNumpadEquals=
KeyNumpadPeriod=
KeyNumpadSubtract=
-KeyO=
-KeyP=
+KeyO="toggleFormationFlight"
+KeyP="FFChangeMode"
KeyPageDown="scale -1 rotateRoll"
KeyPageUp=
KeyPause=pause
Modified: code/trunk/data/gui/scripts/KeyBindMenu.lua
===================================================================
--- code/trunk/data/gui/scripts/KeyBindMenu.lua 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/data/gui/scripts/KeyBindMenu.lua 2017-03-09 13:46:20 UTC (rev 11353)
@@ -35,6 +35,7 @@
table.insert(commandList, "mouseLook")
table.insert(commandList, "pause")
table.insert(commandList, "printScreen")
+ table.insert(commandList, "useUnusePickup")
if orxonox.GUIManager:inDevMode() then
table.insert(commandList, "printScreenHD")
table.insert(commandList, "createSkybox")
@@ -70,6 +71,7 @@
table.insert(nameList, "Look Around")
table.insert(nameList, "Pause")
table.insert(nameList, "Screenshot")
+ table.insert(nameList, "Pickup 0")
if orxonox.GUIManager:inDevMode() then
table.insert(nameList, "HD screenshot")
table.insert(nameList, "Create Skybox")
Modified: code/trunk/data/overlays/HUDTemplates3.oxo
===================================================================
--- code/trunk/data/overlays/HUDTemplates3.oxo 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/data/overlays/HUDTemplates3.oxo 2017-03-09 13:46:20 UTC (rev 11353)
@@ -184,9 +184,17 @@
weaponModeHUDSize = "0.09, 0.03"
/>
+ <HUDPickupSystem
+ name = "PickupSystem"
+ correctaspect = true
+ position = "0.32, 0.81"
+ pickpoint = "0.0, 0.0"
+ visible = "true"
+ />
+
<HUDTimer
name = "Timer"
- position = "0.5, 0.85"
+ position = "0.5, 0.25"
font = "VeraMono"
textsize = 0.1
colour = "1.0, 1.0, 0.0, 0.8"
Modified: code/trunk/data/overlays/HUDTemplatesFPS.oxo
===================================================================
--- code/trunk/data/overlays/HUDTemplatesFPS.oxo 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/data/overlays/HUDTemplatesFPS.oxo 2017-03-09 13:46:20 UTC (rev 11353)
@@ -103,6 +103,14 @@
weaponModeHUDSize = "0.09, 0.03"
/>
+ <HUDPickupSystem
+ name = "PickupSystem"
+ correctaspect = true
+ position = "0.45, 0.95"
+ pickpoint = "0.0, 0.0"
+ visible = "true"
+ />
+
<HUDTimer
name = "Timer"
position = "0.5, 0.85"
Modified: code/trunk/src/modules/overlays/OverlaysPrereqs.h
===================================================================
--- code/trunk/src/modules/overlays/OverlaysPrereqs.h 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/src/modules/overlays/OverlaysPrereqs.h 2017-03-09 13:46:20 UTC (rev 11353)
@@ -103,6 +103,8 @@
class LastManStandingInfos;
class PauseNotice;
class TeamBaseMatchScore;
+ class HUDPickupSystem;
+ class HUDPickupItem;
// stats
class CreateLines;
Modified: code/trunk/src/modules/overlays/hud/CMakeLists.txt
===================================================================
--- code/trunk/src/modules/overlays/hud/CMakeLists.txt 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/src/modules/overlays/hud/CMakeLists.txt 2017-03-09 13:46:20 UTC (rev 11353)
@@ -13,6 +13,8 @@
HUDWeaponMode.cc
HUDWeapon.cc
HUDWeaponSystem.cc
+ HUDPickupItem.cc
+ HUDPickupSystem.cc
ChatOverlay.cc
AnnounceMessage.cc
KillMessage.cc
Copied: code/trunk/src/modules/overlays/hud/HUDPickupItem.cc (from rev 11350, code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.cc)
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDPickupItem.cc (rev 0)
+++ code/trunk/src/modules/overlays/hud/HUDPickupItem.cc 2017-03-09 13:46:20 UTC (rev 11353)
@@ -0,0 +1,83 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Patrick Wintermeyer
+ * Co-authors:
+ * ...
+ *
+ */
+
+#include "HUDPickupItem.h"
+
+#include <string>
+
+
+#include <OgreOverlayManager.h>
+#include <OgrePanelOverlayElement.h>
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "util/Convert.h"
+#include "core/class/Super.h"
+#include "HUDPickupItem.h"
+
+namespace orxonox
+{
+ RegisterClass(HUDPickupItem);
+
+ HUDPickupItem::HUDPickupItem(Context* context) : OrxonoxOverlay(context)
+ {
+ RegisterObject(HUDPickupItem);
+
+ std::string name = "HUDPickupItem" + getUniqueNumberString();
+
+ overlayElement_ = static_cast<Ogre::PanelOverlayElement* >(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", name ));
+
+ overlayElement_->setDimensions(0.075f,0.08f);
+
+ }
+
+ HUDPickupItem::~HUDPickupItem()
+ {
+ if (this->isInitialized())
+ {
+ overlayElement_=nullptr;
+ }
+ }
+
+ void HUDPickupItem::initializeMaterial(const std::string& s, float x, float y)
+ {
+ overlayElement_->setMaterialName(s);
+ overlayElement_->setPosition(x, y);
+ overlayElement_->show();
+ this->background_->addChild(overlayElement_);
+ }
+
+ void HUDPickupItem::hideMe(Pickupable* p, bool repaint)
+ {
+ if(!repaint) return; //dont do anything, if we are not allowed to repaint because the level is terminating
+ assert(overlayElement_);
+ assert(this->background_);
+ overlayElement_->hide();
+ this->background_->removeChild(overlayElement_->getName());
+ }
+}
Copied: code/trunk/src/modules/overlays/hud/HUDPickupItem.h (from rev 11350, code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupItem.h)
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDPickupItem.h (rev 0)
+++ code/trunk/src/modules/overlays/hud/HUDPickupItem.h 2017-03-09 13:46:20 UTC (rev 11353)
@@ -0,0 +1,39 @@
+
+#ifndef _HUDPickupItem_H__
+#define _HUDPickupItem_H__
+
+#include "overlays/OverlaysPrereqs.h"
+
+#include <map>
+#include <vector>
+#include <string>
+
+#include <OgreOverlayManager.h>
+#include <OgrePanelOverlayElement.h>
+
+#include "overlays/OrxonoxOverlay.h"
+#include "tools/interfaces/Tickable.h"
+#include "worldentities/pawns/Pawn.h"
+#include "overlays/OverlayGroup.h"
+#include "pickup/Pickup.h"
+
+namespace orxonox
+{
+ class _OverlaysExport HUDPickupItem : public OrxonoxOverlay, public Tickable
+ {
+ public:
+ HUDPickupItem(Context* context);
+ Ogre::PanelOverlayElement* overlayElement_;
+ virtual ~HUDPickupItem();
+
+ void initializeMaterial(const std::string& s, float x, float y);
+ void hideMe(Pickupable* p, bool repaint);
+
+ private:
+ WeakPtr<Pawn> owner_;
+ WeakPtr<Pickup> pickup_;
+
+ };
+}
+
+#endif
\ No newline at end of file
Copied: code/trunk/src/modules/overlays/hud/HUDPickupSystem.cc (from rev 11350, code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.cc)
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDPickupSystem.cc (rev 0)
+++ code/trunk/src/modules/overlays/hud/HUDPickupSystem.cc 2017-03-09 13:46:20 UTC (rev 11353)
@@ -0,0 +1,129 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Patrick Wintermeyer
+ * Co-authors:
+ * ...
+ *
+ */
+
+#include <vector>
+#include <string>
+
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "util/Convert.h"
+#include "core/class/Super.h"
+#include "HUDPickupSystem.h"
+#include "pickup/Pickup.h"
+#include "HUDPickupItem.h"
+#include "pickup/PickupManager.h"
+
+namespace orxonox
+{
+ RegisterClass(HUDPickupSystem);
+
+ HUDPickupSystem::HUDPickupSystem(Context* context) : OrxonoxOverlay(context)
+ {
+ RegisterObject(HUDPickupSystem);
+
+ overlayElement_ = static_cast<Ogre::PanelOverlayElement* >(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "HUDPickupSystem" + getUniqueNumberString()));
+ overlayElement_->setMaterialName("PickupBar");
+ overlayElement_->setPosition(0.0f,0.0f);
+ overlayElement_->setDimensions(0.70f,0.15f);
+ this->background_->addChild(overlayElement_);
+ }
+
+ HUDPickupSystem::~HUDPickupSystem()
+ {
+ if (this->isInitialized())
+ {
+ this->picks.clear();
+ }
+ }
+
+ void HUDPickupSystem::updatePickupList(std::vector<Pickupable*> picks, std::map<Pickupable*, uint32_t> indexes_)
+ {
+ int i =0;
+ const float offsetX = 0.345f;
+ float offsetY = 0.82f;
+ const float x = 0.102f;
+
+ if(picks.size()>0)
+ {
+ for(Pickupable* p : picks)
+ {
+ i = indexes_.find(p)->second;
+ offsetY = 0.82f;
+
+ if(i>=5)
+ {
+ offsetY+=0.075f;
+ i-=5;
+ }
+ if(this->picks.count(p)==0)
+ {
+ HUDPickupItem* item = new HUDPickupItem(this->getContext());
+ item->initializeMaterial(this->getIcon(((Pickup*)p)->getRepresentationName()), offsetX+i*x, offsetY);
+
+ item->setOverlayGroup(this->getOverlayGroup());
+ this->picks[p] = item;
+ }
+ }
+ }
+ }
+
+ void HUDPickupSystem::createPickupList()
+ {
+ }
+
+ void HUDPickupSystem::removePickup(Pickupable* pickup)
+ {
+ assert(pickup);
+ HUDPickupItem* item = this->picks.find(pickup)->second;
+ orxout(internal_info, context::pickups) << "removePickup: pickup= " << pickup << " item= " << item << endl;
+ assert(item);
+ item->hideMe(pickup, repaint);
+ assert(overlayElement_);
+ assert(this->background_);
+ this->picks.erase(pickup);
+ }
+
+ void HUDPickupSystem::destroyAll()
+ {
+ this->background_->removeChild(overlayElement_->getName());
+ }
+
+ std::string HUDPickupSystem::getIcon(std::string repName)
+ {
+ if(repName.find("invisible", 0)!=std::string::npos) return "Eye";
+ else if(repName.find("tri", 0)!=std::string::npos) return "Asterisk";
+ else if(repName.find("health", 0)!=std::string::npos || repName.find("Health", 0)!=std::string::npos) return "Cross";
+ else if(repName.find("shield", 0)!=std::string::npos) return "Shield";
+ else if(repName.find("munition", 0)!=std::string::npos) return "Munition";
+ else if(repName.find("shrink", 0)!=std::string::npos) return "Shrink";
+ else if(repName.find("boost", 0)!=std::string::npos) return "Flash";
+ else if(repName.find("speed", 0)!=std::string::npos) return "3arrowsup";
+ else if(repName.find("drone", 0)!=std::string::npos) return "Damage";
+ else return "Unknown";
+ }
+}
Copied: code/trunk/src/modules/overlays/hud/HUDPickupSystem.h (from rev 11350, code/branches/HUD_HS16/src/modules/overlays/hud/HUDPickupSystem.h)
===================================================================
--- code/trunk/src/modules/overlays/hud/HUDPickupSystem.h (rev 0)
+++ code/trunk/src/modules/overlays/hud/HUDPickupSystem.h 2017-03-09 13:46:20 UTC (rev 11353)
@@ -0,0 +1,78 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Patrick Wintermeyer
+ * Co-authors:
+ * ...
+ *
+ */
+
+
+#ifndef _HUDPickupSystem_H__
+#define _HUDPickupSystem_H__
+
+#include "overlays/OverlaysPrereqs.h"
+
+#include <map>
+#include <vector>
+#include <string>
+
+
+#include <OgreOverlayManager.h>
+#include <OgrePanelOverlayElement.h>
+
+#include "overlays/OrxonoxOverlay.h"
+#include "worldentities/pawns/Pawn.h"
+#include "overlays/OverlayGroup.h"
+#include "pickup/Pickup.h"
+#include "pickup/PickupRepresentation.h"
+#include "HUDPickupItem.h"
+
+namespace orxonox
+{
+ class _OverlaysExport HUDPickupSystem : public OrxonoxOverlay
+ {
+ public:
+ HUDPickupSystem(Context* context);
+ virtual ~HUDPickupSystem();
+
+ void updatePickupList(std::vector<Pickupable*> picks, std::map<Pickupable*, uint32_t> indexes_);
+ void createPickupList();
+ void removePickup(Pickupable* pickup);
+
+ bool repaint=true; //if we shouldnt repaint, set this to false
+
+ private:
+
+ void destroyAll();
+ std::string getIcon(std::string repName);
+
+ std::map<Pickupable*, HUDPickupItem*> picks;
+
+ Ogre::PanelOverlayElement* overlayElement_;
+ WeakPtr<Pawn> owner_;
+
+ std::vector<PickupRepresentation> pickupRepresentations_;
+ };
+}
+
+#endif
\ No newline at end of file
Modified: code/trunk/src/modules/pickup/CMakeLists.txt
===================================================================
--- code/trunk/src/modules/pickup/CMakeLists.txt 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/src/modules/pickup/CMakeLists.txt 2017-03-09 13:46:20 UTC (rev 11353)
@@ -18,6 +18,7 @@
PCH_FILE
PickupPrecompiledHeaders.h
LINK_LIBRARIES
+ overlays
orxonox
SOURCE_FILES ${PICKUP_SRC_FILES}
)
Modified: code/trunk/src/modules/pickup/PickupManager.cc
===================================================================
--- code/trunk/src/modules/pickup/PickupManager.cc 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/src/modules/pickup/PickupManager.cc 2017-03-09 13:46:20 UTC (rev 11353)
@@ -40,6 +40,9 @@
#include "core/singleton/ScopedSingletonIncludes.h"
#include "network/Host.h"
#include "network/NetworkFunctionIncludes.h"
+#include "core/input/KeyBinderManager.h" //for keybinding
+#include "core/input/KeyBinder.h" //for keybinding
+#include "core/command/ConsoleCommandIncludes.h"
#include "infos/PlayerInfo.h"
#include "interfaces/PickupCarrier.h"
@@ -47,6 +50,7 @@
#include "CollectiblePickup.h"
#include "PickupRepresentation.h"
+#include "overlays/hud/HUDPickupSystem.h"
namespace orxonox
{
@@ -63,6 +67,8 @@
RegisterAbstractClass(PickupManager).inheritsFrom<PickupListener>();
+ SetConsoleCommand("useUnusePickup", &PickupManager::useUnusePickup).addShortcut().setActive(true);
+
/**
@brief
Constructor. Registers the PickupManager and creates the default PickupRepresentation.
@@ -259,6 +265,9 @@
{
assert(pickup);
+ for (HUDPickupSystem* hud : ObjectList<HUDPickupSystem>())
+ pickupSystem = hud;
+
if(!GameMode::isMaster()) // If this is neither standalone nor the server.
return;
@@ -282,10 +291,16 @@
uint32_t index = 0;
if(pickedUp) // If the Pickupable has changed to picked up, it is added to the required lists.
{
- index = this->getPickupIndex(); // Ge a new identifier (index) for the Pickupable.
+ index = this->getPickupIndex(); // Get a new identifier (index) for the Pickupable.
// Add the Pickupable to the indexes_ and pickups_ lists.
this->indexes_[pickup] = index;
this->pickups_[index] = pickup;
+
+ this->picks.push_back(pickup);
+
+ if(pickupSystem)
+ pickupSystem->updatePickupList(picks, indexes_);
+
}
else // If it was dropped, it is removed from the required lists.
{
@@ -293,9 +308,14 @@
std::map<Pickupable*, uint32_t>::iterator it = this->indexes_.find(pickup);
index = it->second;
- // Remove the Pickupable from the indexes_ and pickups_ list.
- this->indexes_.erase(it);
- this->pickups_.erase(index);
+ this->indexes_.erase(pickup);
+ this->pickups_.erase(index); //set to null, so that can be identified as free slot by getPickupIndex()
+
+
+ this->picks.erase(std::remove(this->picks.begin(), this->picks.end(), pickup), this->picks.end()); //remove pickup from vector
+
+ if(pickupSystem)
+ pickupSystem->removePickup(pickup);
}
// If we're either in standalone mode or this is the host whom the change of the pickup's status concerns.
@@ -323,6 +343,33 @@
}
+ //This function is called by the command line or by the key binding
+ //it uses or unuses the pickup, depending on its current state
+ //or drops it (depends what you comment/uncomment)
+ void PickupManager::useUnusePickup(uint32_t index)
+ {
+ PickupManager& manager = PickupManager::getInstance();
+
+ if(!manager.pickups_.count(index)) return; //if pickup is no longer here, dont do anything
+
+ Pickupable* pickup=manager.pickups_.find(index)->second;
+ if(pickup==nullptr)
+ {
+ return; //pickup does not exist
+ }
+
+ //if the pickup should be dropped upon key press
+ manager.dropPickup(index);
+
+ //if the pickup should be used/unused upon key press
+
+ // if(pickup->isUsed())
+ // manager.usePickup(index, false);
+ // else
+ // manager.usePickup(index, true);
+ }
+
+
/**
@brief
Helper method to react to the change in the pickedUp status of a Pickupable.
@@ -401,7 +448,10 @@
return;
Pickupable* pickupable = this->pickups_.find(pickup)->second;
if(pickupable != nullptr)
+ {
pickupable->drop();
+
+ }
}
// If we're neither server nor standalone we drop the pickup by calling dropPickupNetworked() of the PickupManager on the server.
else
@@ -494,16 +544,23 @@
/**
@brief
- Get a new index for a Pickupable.
- This will work as long as the number of Pickupables that are picked up is sufficiently small and as long as they don't exist forever.
+ Get a new index between 0 and 9 for a Pickupable.
+ If all slots are occupied, the Pickupable in the first slot will be dropped.
@return
Returns the new index.
*/
uint32_t PickupManager::getPickupIndex(void)
{
- if(this->pickupHighestIndex_ == uint32_t(~0x0)-1) // If we've reached the highest possible number, we wrap around.
- this->pickupHighestIndex_ = 0;
- return this->pickupHighestIndex_++;
+ //check if there are free slots available
+
+ for(uint32_t i=0; i<10; i++)
+ {
+ if(!pickups_.count(i)) return i;
+ }
+ //all slots are full and we have to drop sth
+ orxout(internal_info, context::pickups) << "everything was full and we have now dropped the first element" << endl;
+ this->dropPickup(0);
+ return 0;
}
}
Modified: code/trunk/src/modules/pickup/PickupManager.h
===================================================================
--- code/trunk/src/modules/pickup/PickupManager.h 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/src/modules/pickup/PickupManager.h 2017-03-09 13:46:20 UTC (rev 11353)
@@ -41,9 +41,10 @@
#include "core/object/WeakPtr.h"
#include "PickupRepresentation.h"
-
+#include "interfaces/Pickupable.h"
#include "util/Singleton.h"
#include "interfaces/PickupListener.h"
+#include "overlays/hud/HUDPickupSystem.h"
namespace orxonox // tolua_export
{ // tolua_export
@@ -134,6 +135,7 @@
{ return (this->pickupsIterator_++)->second; }
void dropPickup(uint32_t pickup); //!< Drop the input Pickupable.
+ static void useUnusePickup(uint32_t index); //tolua_export
void usePickup(uint32_t pickup, bool use); //!< Use (or unuse) the input Pickupable.
/**
@brief Check whether the input Pickupable is valid, meaning that it is in the PickupManager's list and still exists.
@@ -146,8 +148,12 @@
static void dropPickupNetworked(uint32_t pickup); //!< Helper method to drop the input pickup on the server.
static void usePickupNetworked(uint32_t pickup, bool use); //!< Helper method to use (or unuse) the input Pickupable on the server.
+ void setPickupSystem(HUDPickupSystem* system);
private:
+ HUDPickupSystem* pickupSystem;
+ std::vector<Pickupable*> picks;
+
static PickupManager* singletonPtr_s;
static const std::string guiName_s; //!< The name of the PickupInventory
bool guiLoaded_; //!< Whether the PickupInventory GUI has been loaded, yet.
@@ -165,7 +171,7 @@
void updateGUI(void); //!< Updates the PickupInventory GUI.
uint32_t getPickupIndex(void); //!< Get a new index for a Pickupable.
-
+
}; // tolua_export
} // tolua_export
Modified: code/trunk/src/modules/pickup/items/SpeedPickup.h
===================================================================
--- code/trunk/src/modules/pickup/items/SpeedPickup.h 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/src/modules/pickup/items/SpeedPickup.h 2017-03-09 13:46:20 UTC (rev 11353)
@@ -47,7 +47,7 @@
@brief
A Pickup which can manipulate the Speed of a Pawn.
- There are 5 parameters that can be cosen:
+ There are 5 parameters that can be chosen:
- The @b speedMultiply, specifies a factor by which the Spaceships speed is multiplied. The default is 1.
- The @b speedAdd, specifies a value that is added to the speed of the Spaceship. The default is 0.
- The @b activationType <em>immediate</em> or <em>onUse</em>, defines if the SpeedPickup is used when it's picked up or only after the player chooses to use it. The default is <em>immediate</em>.
Modified: code/trunk/src/orxonox/CMakeLists.txt
===================================================================
--- code/trunk/src/orxonox/CMakeLists.txt 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/src/orxonox/CMakeLists.txt 2017-03-09 13:46:20 UTC (rev 11353)
@@ -19,6 +19,7 @@
INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/src/libraries
+ ${CMAKE_SOURCE_DIR}/src/modules
${CMAKE_CURRENT_SOURCE_DIR}
)
Modified: code/trunk/src/orxonox/controllers/HumanController.h
===================================================================
--- code/trunk/src/orxonox/controllers/HumanController.h 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/src/orxonox/controllers/HumanController.h 2017-03-09 13:46:20 UTC (rev 11353)
@@ -68,7 +68,6 @@
void startBoosting(void);
void stopBoosting(void);
-
static void greet();
static void switchCamera();
static void mouseLook();
Modified: code/trunk/src/orxonox/gamestates/GSLevel.cc
===================================================================
--- code/trunk/src/orxonox/gamestates/GSLevel.cc 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/src/orxonox/gamestates/GSLevel.cc 2017-03-09 13:46:20 UTC (rev 11353)
@@ -49,6 +49,7 @@
#include "Level.h"
#include "PlayerManager.h"
#include "GSRoot.h"
+// #include "overlays/hud/HUDPickupSystem.h"
namespace orxonox
{
@@ -125,6 +126,13 @@
if (GameMode::showsGraphics())
InputManager::getInstance().leaveState("game");
+ // HUDPickupSystem* pickupSystem;
+
+ // for (HUDPickupSystem* hud : ObjectList<HUDPickupSystem>())
+ // pickupSystem = hud;
+
+ // pickupSystem->repaint=false;
+
// disconnect all HumanPlayers
PlayerManager::getInstance().disconnectAllClients();
Modified: code/trunk/src/orxonox/gamestates/GSLevel.h
===================================================================
--- code/trunk/src/orxonox/gamestates/GSLevel.h 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/src/orxonox/gamestates/GSLevel.h 2017-03-09 13:46:20 UTC (rev 11353)
@@ -30,6 +30,7 @@
#define _GSLevel_H__
#include "OrxonoxPrereqs.h"
+// #include "overlays/OverlaysPrereqs.h"
#include <string>
#include <set>
Modified: code/trunk/src/orxonox/interfaces/Pickupable.h
===================================================================
--- code/trunk/src/orxonox/interfaces/Pickupable.h 2017-03-09 12:23:50 UTC (rev 11352)
+++ code/trunk/src/orxonox/interfaces/Pickupable.h 2017-03-09 13:46:20 UTC (rev 11353)
@@ -95,6 +95,13 @@
virtual void changedCarrier(void) {}
/**
+ @brief Check whether the Pickupable is in the process of being destroyed.
+ @return Returns true if so.
+ */
+ inline bool isBeingDestroyed(void)
+ { return this->beingDestroyed_; }
+
+ /**
@brief Returns whether the Pickupable is currently picked up.
@return Returns true if the Pickupable is currently picked up, false if not.
*/
@@ -154,13 +161,6 @@
{ this->enabled_ = false; }
/**
- @brief Check whether the Pickupable is in the process of being destroyed.
- @return Returns true if so.
- */
- inline bool isBeingDestroyed(void)
- { return this->beingDestroyed_; }
-
- /**
@brief Facilitates the creation of a PickupSpawner upon dropping of the Pickupable.
This method must be implemented by any class directly inheriting from Pickupable.
@return Returns true if a spawner was created, false if not.
More information about the Orxonox-commit
mailing list