Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 6711


Ignore:
Timestamp:
Apr 13, 2010, 10:16:10 AM (15 years ago)
Author:
dafrick
Message:

Merged pickup4 branch back to trunk.

Location:
code/trunk
Files:
27 edited

Legend:

Unmodified
Added
Removed
  • code/trunk

  • code/trunk/data/gui/layouts/PickupInventory.layout

    r6417 r6711  
    1 <?xml version="1.0" encoding="UTF-8" ?>
    2 <GUILayout>
    3     <Window Type="TaharezLook/FrameWindow" Name="orxonox/Inventory">
    4         <Property Name="UnifiedMinSize" Value="{{0.0,385},{0.0,200}}" />
    5         <Property Name="UnifiedMaxSize" Value="{{0.0,385},{0.0,200}}" />
    6         <Property Name="UnifiedPosition" Value="{{0.5,-100},{0.5,-85}}" />
    7         <Property Name="UnifiedSize" Value="{{0.0,385},{0.0,200}}" />
    8         <Property Name="Text" Value="Inventory" />
    9         <Property Name="CloseButtonEnabled" Value="False" />
     1<?xml version="1.0" encoding="UTF-8"?>
    102
    11         <Window Type="TaharezLook/TabControl" Name="orxonox/Inventory/TabControl" >
    12             <Property Name="Tooltip" Value="Inventory" />
    13             <Property Name="TabHeight" Value="{0,-1}" />
     3<GUILayout >
     4    <Window Type="DefaultWindow" Name="orxonox/PickupInventory/Background" >
     5        <Property Name="InheritsAlpha" Value="False" />
     6        <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
     7        <Property Name="UnifiedAreaRect" Value="{{0,0},{0,0},{1,0},{1,0}}" />
     8        <Window Type="TaharezLook/StaticText" Name="orxonox/PickupInventory/PickupInventory" >
     9            <Property Name="Text" Value="Pickup Inventory" />
     10            <Property Name="Alpha" Value="0.8" />
     11            <Property Name="InheritsAlpha" Value="False" />
     12            <Property Name="HorzFormatting" Value="HorzCentred" />
    1413            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
    15             <Property Name="TabPanePosition" Value="Bottom" />
    16             <Property Name="UnifiedAreaRect" Value="{{0,10},{0,30},{1,-10},{1,-10}}" />
    17 
    18             <Window Type="TaharezLook/ScrollablePane" Name="orxonox/Inventory/TabControl/TabEquipment">
    19                 <Property Name="Text" Value="Equipment" />
    20                 <Property Name="UnifiedPosition" Value="{{0.0,3},{0.0,3}}"/>
    21                 <Property Name="UnifiedSize" Value="{{1.0,-6},{1.0,-6}}"/>
    22             </Window>
    23             <Window Type="TaharezLook/ScrollablePane" Name="orxonox/Inventory/TabControl/TabUsable">
    24                 <Property Name="Text" Value="Usable" />
    25                 <Property Name="UnifiedPosition" Value="{{0.0,3},{0.0,3}}"/>
    26                 <Property Name="UnifiedSize" Value="{{1.0,-6},{1.0,-6}}"/>
     14            <Property Name="VertFormatting" Value="TopAligned" />
     15            <Property Name="UnifiedAreaRect" Value="{{0.15,0},{0.15,0},{0.85,0},{0.8,0}}" />
     16            <Window Type="TaharezLook/StaticText" Name="orxonox/PickupInventory/Wrapper" >
     17                <Property Name="TextColours" Value="FF4444FF" />
     18                <Property Name="InheritsAlpha" Value="False" />
     19                <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
     20                <Property Name="HorzFormatting" Value="HorzCentred" />
     21                <Property Name="VertFormatting" Value="TopAligned" />
     22                <Property Name="UnifiedAreaRect" Value="{{0.05,0},{0.15,0},{0.95,0},{0.92,0}}" />
     23                <Window Type="TaharezLook/ScrollablePane" Name="orxonox/PickupInventory/Inventory" >
     24                    <Property Name="ContentArea" Value="l:0 t:0 r:0 b:0" />
     25                    <Property Name="HorzStepSize" Value="0.005" />
     26                    <Property Name="VertStepSize" Value="0.005" />
     27                    <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
     28                    <Property Name="HorzOverlapSize" Value="0.01" />
     29                    <Property Name="UnifiedAreaRect" Value="{{0.005,0},{0.01,0},{0.995,0},{0.99,0}}" />
     30                    <Property Name="VertOverlapSize" Value="0.01" />
     31                    <Property Name="HorzScrollPosition" Value="0" />
     32                    <Property Name="VertScrollPosition" Value="0" />
     33                </Window>
    2734            </Window>
    2835        </Window>
    29 
    30         <Event Name="WindowUpdate" Function="PickupInventory.update" />
     36        <Window Type="TaharezLook/Button" Name="orxonox/PickupInventory/InventoryBackButton" >
     37            <Property Name="Text" Value="Back" />
     38            <Property Name="UnifiedMaxSize" Value="{{1,0},{1,0}}" />
     39            <Property Name="UnifiedAreaRect" Value="{{0.4,0},{0.8350,0},{0.6,0},{0.8800,0}}" />
     40            <Event Name="Clicked" Function="PickupInventory.InventoryBackButton_clicked"/>
     41        </Window>
    3142    </Window>
    3243</GUILayout>
  • code/trunk/data/gui/schemes/OrxonoxGUIScheme.scheme

    r5951 r6711  
    22<GUIScheme Name="OrxonoxGUI">
    33    <Imageset Name="MainMenuBackground" Filename="MainMenuBackground.imageset"/>
     4    <Imageset Name="PickupInventory" Filename="PickupInventory.imageset"/>
    45</GUIScheme>
  • code/trunk/data/gui/scripts/InitialiseGUI.lua

    r6417 r6711  
    223223end
    224224
     225--TODO: Needed?
    225226function test(e)
    226227    debug(0, "Blubb")
  • code/trunk/data/gui/scripts/PickupInventory.lua

    r6417 r6711  
    33BasicGUI = require("BasicGUI")
    44local P = BasicGUI:new() --inherit everything from the gui package
     5
    56if _REQUIREDNAME == nil then
    67    PickupInventory = P
     
    1213P.layoutString = "PickupInventory.layout"
    1314
    14 P.lastEquipmentCount_ = 0
    15 P.lastUsableCount_ = 0
    16 P.currentUsableID_ = 0
    17 
    18 -- events
    19 function P:frmUpdate(e)
    20     local equipCount = orxonox.PickupInventory:getEquipmentCount()
    21     local usableCount = orxonox.PickupInventory:getUsableCount()
    22 
    23     if equipCount ~= self.lastEquipmentCount_ or usableCount ~= self.lastUsableCount_ then
    24         self:updateTabs()
    25     end
    26 end
    27 
    28 function P.update(e)
    29     loadedGUIs["PickupInventory"]:frmUpdate(e)
    30 end
    31 
    32 function P.itemClicked(e)
    33     loadedGUIs["PickupInventory"]:mItemClicked(e)
    34 end
    35 
    36 function P:mItemClicked(e)
    37     local w = CEGUI.toWindowEventArgs(e).window
    38     local name = w:getName()
    39     local t = name:sub(25, 27)
    40     local i = name:sub(29)
    41 
    42     if t == "equ" then
    43 
    44     end
    45 
    46     if t == "use" then
    47         if self.currentUsableID_ >= 0 then
    48             winMgr:getWindow("orxonox/Inventory/Title/use/" .. self.currentUsableID_):setProperty("TextColours", "tl:FFFFFFFF tr:FFFFFFFF bl:FFFFFFFF br:FFFFFFFF")
     15P.carrierList = {}
     16P.wrapper = nil
     17P.detailsWindows = {}
     18
     19function P.init()
     20    carrierList = {}
     21end
     22
     23function P.show()
     24    P.window:show() -- TODO: Do this through parent...
     25    P.visible = true
     26   
     27    P.createInventory()
     28
     29end
     30
     31function P.hide()
     32    P.cleanup()
     33   
     34end
     35
     36function P.update()
     37    P.cleanup()
     38   
     39    P.createInventory()
     40end
     41
     42function P.createInventory()
     43    local pickupManager = orxonox.PickupManager:getInstance()
     44    local carrier = pickupManager:getPawn()
     45   
     46    local root = winMgr:getWindow("orxonox/PickupInventory/Inventory")
     47    P.wrapper = winMgr:createWindow("TaharezLook/ScrollablePane", "orxonox/PickupInventory/Inventory/Wrapper")
     48    P.wrapper:setSize(CEGUI.UVector2(CEGUI.UDim(1,0),CEGUI.UDim(1,0)))
     49    root:addChildWindow(P.wrapper)
     50   
     51    P.carrierList = {}
     52   
     53    --Design parameters:
     54    local space = 15
     55   
     56    P.getCarrierList(carrier)
     57    local offset = 0
     58    for k,v in pairs(P.carrierList) do
     59        local window = P.createCarrierBox(v,k)
     60        window:setYPosition(CEGUI.UDim(0,offset))
     61        offset = offset + window:getHeight():asAbsolute(1) + space
     62        P.wrapper:addChildWindow(window)
     63    end
     64end
     65
     66function P.getCarrierList(carrier)
     67
     68    -- TODO: Test for nil or 0?
     69    if carrier == nil then
     70        return
     71    end
     72   
     73    table.insert(P.carrierList, carrier)
     74   
     75    local numCarriers = orxonox.PickupManager:getInstance():getNumCarrierChildren(carrier)
     76    if numCarriers == 0 then
     77        return
     78    end
     79   
     80    for i=0,numCarriers-1,1 do
     81        local child = orxonox.PickupManager:getInstance():getCarrierChild(i, carrier)
     82        if child ~= nil then
     83            P.getCarrierList(child)
    4984        end
    50         orxonox.PickupInventory:selectUsable(tonumber(i))
    51         self.currentUsableID_ = tonumber(i)
    52         winMgr:getWindow("orxonox/Inventory/Title/use/" .. i):setProperty("TextColours", "tl:FFFF4444 tr:FFFF4444 bl:FFFF4444 br:FFFF4444")
    53     end
    54 end
    55 
    56 -- methods
    57 function P:updateTabs()
    58     local eqWin = winMgr:getWindow("orxonox/Inventory/TabControl/TabEquipment")
    59     local usWin = winMgr:getWindow("orxonox/Inventory/TabControl/TabUsable")
    60     orxonox.PickupInventory:getSingleton():clearInventory(winMgr, eqWin, usWin)
    61     orxonox.PickupInventory:getSingleton():updateTabs(winMgr, eqWin, usWin)
    62 
    63     self.currentUsableID_ = orxonox.PickupInventory:getCurrentUsableIndex()
    64     self.lastEquipmentCount_ = orxonox.PickupInventory:getEquipmentCount()
    65     self.lastUsableCount_ = orxonox.PickupInventory:getUsableCount()
     85    end
     86end
     87
     88function P.createCarrierBox(carrier, index)
     89
     90    local name = "orxonox/PickupInventory/Carrier" .. index
     91       
     92    --Design parameters:
     93    local imageHeight = 50
     94    local textHeight = 30
     95    local horizontalOffset = 20
     96    local buttonWidth = 85
     97   
     98    local offset = 0
     99
     100    local box = winMgr:createWindow("TaharezLook/ScrollablePane", name .. "/Box")
     101    box:setPosition(CEGUI.UVector2(CEGUI.UDim(0, horizontalOffset), CEGUI.UDim(0, 0)))
     102    box:setSize(CEGUI.UVector2(CEGUI.UDim(1.0, -horizontalOffset), CEGUI.UDim(1, 0)))
     103   
     104    offset = offset+textHeight
     105    local title = winMgr:createWindow("TaharezLook/StaticText", name .. "/Title")
     106    title:setText(carrier:getCarrierName())
     107    title:setSize(CEGUI.UVector2(CEGUI.UDim(1, 0), CEGUI.UDim(0, offset)))
     108    title:setProperty("FrameEnabled", "set:False")
     109    box:addChildWindow(title)
     110   
     111    local numPickups = orxonox.PickupManager:getInstance():getNumPickups(carrier)
     112    for i=0,numPickups-1,1 do
     113        local pickup = orxonox.PickupManager:getInstance():getPickupRepresentation(i, carrier)
     114       
     115        local item = winMgr:createWindow("TaharezLook/StaticText", name .. "/Box/Pickup" .. i)
     116        item:setSize(CEGUI.UVector2(CEGUI.UDim(1, -horizontalOffset), CEGUI.UDim(0, imageHeight)))
     117        item:setPosition(CEGUI.UVector2(CEGUI.UDim(0, horizontalOffset), CEGUI.UDim(0, offset)))
     118        box:addChildWindow(item)
     119        offset = offset + imageHeight+5
     120       
     121        local image = winMgr:createWindow("TaharezLook/StaticImage", name .. "/Box/Pickup" .. i .. "/Image")
     122        image:setProperty("Image", "set:PickupInventory image:" .. pickup:getInventoryRepresentation())
     123        image:setProperty("BackgroundEnabled", "set:False")
     124        image:setProperty("FrameEnabled", "set:True")
     125        image:setSize(CEGUI.UVector2(CEGUI.UDim(0, imageHeight), CEGUI.UDim(0, imageHeight)))
     126        item:addChildWindow(image)
     127       
     128        local title = winMgr:createWindow("TaharezLook/StaticText", name .. "/Box/Pickup" .. i .. "/Title")
     129        title:setPosition(CEGUI.UVector2(CEGUI.UDim(0, imageHeight+5), CEGUI.UDim(0, (imageHeight-textHeight)/2)))
     130        title:setSize(CEGUI.UVector2(CEGUI.UDim(0.4, 0), CEGUI.UDim(0, textHeight)))
     131        title:setText(pickup:getPickupName())
     132        title:setProperty("FrameEnabled", "set:False")
     133        item:addChildWindow(title)
     134       
     135        local useButton = winMgr:createWindow("TaharezLook/Button", name .. "/Box/Pickup" .. i .. "/UseButton")
     136        useButton:setPosition(CEGUI.UVector2(CEGUI.UDim(0.4, imageHeight+10),CEGUI.UDim(0, (imageHeight-textHeight)/2)))
     137        useButton:setSize(CEGUI.UVector2(CEGUI.UDim(0, buttonWidth), CEGUI.UDim(0, textHeight)))
     138        useButton:setText("use")
     139        orxonox.GUIManager:subscribeEventHelper(useButton, "Clicked", P.filename .. ".InventoryUseButton_clicked")
     140        item:addChildWindow(useButton)
     141       
     142        local dropButton = winMgr:createWindow("TaharezLook/Button", name .. "/Box/Pickup" .. i .. "/DropButton")
     143        dropButton:setPosition(CEGUI.UVector2(CEGUI.UDim(0.4, imageHeight+15+buttonWidth),CEGUI.UDim(0, (imageHeight-textHeight)/2)))
     144        dropButton:setSize(CEGUI.UVector2(CEGUI.UDim(0, buttonWidth), CEGUI.UDim(0, textHeight)))
     145        dropButton:setText("drop")
     146        orxonox.GUIManager:subscribeEventHelper(dropButton, "Clicked", P.filename .. ".InventoryDropButton_clicked")
     147        item:addChildWindow(dropButton)
     148       
     149        local detailsButton = winMgr:createWindow("TaharezLook/Button", name .. "/Box/Pickup" .. i .. "/DetailsButton")
     150        detailsButton:setPosition(CEGUI.UVector2(CEGUI.UDim(0.4, imageHeight+20+2*buttonWidth),CEGUI.UDim(0, (imageHeight-textHeight)/2)))
     151        detailsButton:setSize(CEGUI.UVector2(CEGUI.UDim(0, buttonWidth), CEGUI.UDim(0, textHeight)))
     152        detailsButton:setText("details")
     153        orxonox.GUIManager:subscribeEventHelper(detailsButton, "Clicked", P.filename .. ".InventoryDetailsButton_clicked")
     154        item:addChildWindow(detailsButton)
     155    end
     156   
     157    box:setHeight(CEGUI.UDim(0,offset))
     158   
     159    return box
     160end
     161
     162function P.cleanup()
     163    if P.wrapper ~= nil then
     164        winMgr:destroyWindow(P.wrapper)
     165    end
     166   
     167    --Destroy details windows.
     168    for k,v in pairs(P.detailsWindows) do
     169        if v ~= nil then
     170            winMgr:destroyWindow(v)
     171        end
     172    end
     173end
     174
     175function P.windowToCarrierHelper(e)
     176    local we = CEGUI.toWindowEventArgs(e)
     177    local name = we.window:getName()
     178
     179    local match = string.gmatch(name, "%d+")
     180    local carrierNr = tonumber(match())
     181    local pickupNr = tonumber(match())
     182
     183    local arguments = {}
     184    arguments[1] = carrierNr
     185    arguments[2] = pickupNr
     186    return arguments
     187end
     188
     189function P.createDetailsWindow(pickupIndex, carrierIndex)
     190    local carrier = P.carrierList[carrierIndex]
     191    local pickup = orxonox.PickupManager:getInstance():getPickupRepresentation(pickupIndex, carrier)
     192   
     193    local headerOffset = 35
     194    --Design parameters
     195    local titleHeight = 30
     196    local imageSize = 100
     197    local buttonWidth = 85
     198   
     199    local name = "orxonox/PickupInventory/Carrier" .. carrierIndex .. "/Pickup" .. pickupIndex .. "/Details" .. P.getNewDetailNumber()
     200   
     201    local window = winMgr:createWindow("TaharezLook/FrameWindow", name)
     202    window:setSize(CEGUI.UVector2(CEGUI.UDim(0.5,0),CEGUI.UDim(0.4,0)))
     203    orxonox.GUIManager:subscribeEventHelper(window, "CloseClicked", P.filename .. ".closeDetailWindow")
     204   
     205    local root = winMgr:getWindow("orxonox/PickupInventory/Background")
     206    root:addChildWindow(window)
     207   
     208    local wrapper = winMgr:createWindow("DefaultWindow", name .. "/Wrapper")
     209    wrapper:setSize(CEGUI.UVector2(CEGUI.UDim(1, -20),CEGUI.UDim(1, -50)))
     210    wrapper:setPosition(CEGUI.UVector2(CEGUI.UDim(0, 10),CEGUI.UDim(0, 40)))
     211    window:addChildWindow(wrapper)
     212   
     213    local title = winMgr:createWindow("TaharezLook/StaticText", name .. "/Title")
     214    title:setText(pickup:getPickupName())
     215    title:setHeight(CEGUI.UDim(0, titleHeight))
     216    title:setProperty("FrameEnabled", "set:False")
     217    title:setProperty("BackgroundEnabled", "set:False")
     218    wrapper:addChildWindow(title)
     219   
     220    local image = winMgr:createWindow("TaharezLook/StaticImage", name .. "/Image")
     221    image:setProperty("Image", "set:PickupInventory image:" .. pickup:getInventoryRepresentation())
     222    image:setProperty("BackgroundEnabled", "set:False")
     223    image:setProperty("FrameEnabled", "set:True")
     224    image:setSize(CEGUI.UVector2(CEGUI.UDim(0, imageSize), CEGUI.UDim(0, imageSize)))
     225    image:setYPosition(CEGUI.UDim(0, titleHeight + 5))
     226    wrapper:addChildWindow(image)
     227   
     228    local box = winMgr:createWindow("TaharezLook/ScrollablePane", name .. "/Description")
     229    box:setSize(CEGUI.UVector2(CEGUI.UDim(1.0, -1*(imageSize + 10)),CEGUI.UDim(1, -(titleHeight + 5 + titleHeight + 20))))
     230    box:setPosition(CEGUI.UVector2(CEGUI.UDim(0, imageSize + 10),CEGUI.UDim(0, titleHeight + 5)))
     231    local description = winMgr:createWindow("TaharezLook/StaticText", name .. "/Description/Text")
     232    description:setText(pickup:getPickupDescription())
     233    description:setProperty("HorzFormatting", "WordWrapLeftAligned")
     234    description:setProperty("VertFormatting", "TopAligned")
     235    box:addChildWindow(description)
     236    wrapper:addChildWindow(box)
     237   
     238    local useButton = winMgr:createWindow("TaharezLook/Button", name .. "/UseButton")
     239    useButton:setPosition(CEGUI.UVector2(CEGUI.UDim(0, imageSize+10),CEGUI.UDim(1, -40)))
     240    useButton:setSize(CEGUI.UVector2(CEGUI.UDim(0, buttonWidth), CEGUI.UDim(0, titleHeight)))
     241    useButton:setText("use")
     242    orxonox.GUIManager:subscribeEventHelper(useButton, "Clicked", P.filename .. ".InventoryUseButton_clicked")
     243    wrapper:addChildWindow(useButton)
     244   
     245    local dropButton = winMgr:createWindow("TaharezLook/Button", name .. "/DropButton")
     246    dropButton:setPosition(CEGUI.UVector2(CEGUI.UDim(0, imageSize+10+buttonWidth+10),CEGUI.UDim(1, -40)))
     247    dropButton:setSize(CEGUI.UVector2(CEGUI.UDim(0, buttonWidth), CEGUI.UDim(0, titleHeight)))
     248    dropButton:setText("drop")
     249    orxonox.GUIManager:subscribeEventHelper(dropButton, "Clicked", P.filename .. ".InventoryDropButton_clicked")
     250    wrapper:addChildWindow(dropButton)
     251   
     252    table.insert(P.detailsWindows, window)
     253   
     254end
     255
     256function P.getNewDetailNumber()
     257    local number = table.getn(P.detailsWindows)
     258    for k,v in pairs(P.detailsWindows) do
     259        if v == nil then
     260            number = k-1
     261        end
     262    end
     263    return number
     264end
     265
     266function P.InventoryUseButton_clicked(e)
     267    local arguments = P.windowToCarrierHelper(e)
     268    orxonox.PickupManager:getInstance():usePickup(arguments[2], P.carrierList[arguments[1]], true)
     269end
     270
     271function P.InventoryDropButton_clicked(e)
     272    local arguments = P.windowToCarrierHelper(e)
     273    orxonox.PickupManager:getInstance():dropPickup(arguments[2], P.carrierList[arguments[1]])
     274end
     275
     276function P.InventoryDetailsButton_clicked(e)
     277    local arguments = P.windowToCarrierHelper(e)
     278    P.createDetailsWindow(arguments[2], arguments[1])
     279end
     280
     281function P.closeDetailWindow(e)
     282    --Get some numbers from the window
     283    local we = CEGUI.toWindowEventArgs(e)
     284    local name = we.window:getName()
     285    local match = string.gmatch(name, "%d+")
     286    local carrierNr = tonumber(match())
     287    local pickupNr = tonumber(match())
     288    local detailNr = tonumber(match())
     289   
     290    local window = P.detailsWindows[detailNr+1]
     291    winMgr:destroyWindow(window)
     292    P.detailsWindows[detailNr+1] = nil
     293end
     294
     295function P.InventoryBackButton_clicked(e)
     296    hideGUI("PickupInventory")
    66297end
    67298
  • code/trunk/data/gui/scripts/QuestGUI.lua

    r6417 r6711  
    1111
    1212function P:show()
    13     self.window:show() -- TDO: Do this through parent...
     13    self.window:show() -- TODO: Do this through parent...
    1414    self.visible = true
    1515
  • code/trunk/data/levels/includes/pickups.oxi

    r6524 r6711  
    11<PickupRepresentation
    2     name = "Small Health Boost"
    3     description = "Adds a small amout of health to the ship."
     2    pickupName = "Small Health Boost"
     3    pickupDescription = "Adds a small amout of health to the ship."
     4    inventoryRepresentation = "SmallHealth"
    45    spawnerTemplate = "smallhealthpickupRepresentation"
    56>
     
    1011
    1112<PickupRepresentation
    12     name = "Medium Health Boost"
    13     description = "Adds a medium amout of health to the ship."
     13    pickupName = "Medium Health Boost"
     14    pickupDescription = "Adds a medium amout of health to the ship."
    1415    spawnerTemplate = "mediumhealthpickupRepresentation"
     16    inventoryRepresentation = "MediumHealth"
    1517>
    1618    <pickup>
     
    2022
    2123<PickupRepresentation
    22     name = "Huge Health Boost"
    23     description = "Adds a huge amout of health to the ship."
     24    pickupName = "Huge Health Boost"
     25    pickupDescription = "Adds a huge amout of health to the ship."
    2426    spawnerTemplate = "hugehealthpickupRepresentation"
     27    inventoryRepresentation = "HugeHealth"
    2528>
    2629    <pickup>
     
    3033
    3134<PickupRepresentation
    32     name = "Crazy Madness Health Boost"
    33     description = "Adds a crazy amout of health to the ship."
     35    pickupName = "Crazy Madness Health Boost"
     36    pickupDescription = "Adds a crazy amout of health to the ship."
    3437    spawnerTemplate = "crazyhealthpickupRepresentation"
     38    inventoryRepresentation = "CrazyMadnessHealth"
    3539>
    3640    <pickup>
     
    4044
    4145<PickupRepresentation
    42     name = "Double Pickup"
    43     description = "Does stuff."
     46    pickupName = "Double Pickup"
     47    pickupDescription = "Does stuff."
    4448    spawnerTemplate = "crazyhealthpickupRepresentation"
    4549>
     
    4852    </pickup>
    4953</PickupRepresentation>
     54
     55<PickupRepresentation
     56    pickupName = "Use Pickup"
     57    pickupDescription = "Uses all pickups you have."
     58    spawnerTemplate = "usepickupRepresentation"
     59    inventoryRepresentation = "usePickup"
     60>
     61    <pickup>
     62        <MetaPickup metaType="use" />
     63    </pickup>
     64</PickupRepresentation>
     65
     66<PickupRepresentation
     67    pickupName = "Drop Pickup"
     68    pickupDescription = "Drops all pickups you have."
     69    spawnerTemplate = "droppickupRepresentation"
     70    inventoryRepresentation = "dropPickup"
     71>
     72    <pickup>
     73        <MetaPickup metaType="drop" />
     74    </pickup>
     75</PickupRepresentation>
     76
     77<PickupRepresentation
     78    pickupName = "Huge Health Boost"
     79    pickupDescription = "Adds a huge amout of health to the ship."
     80    spawnerTemplate = "hugehealthpickupRepresentation"
     81    inventoryRepresentation = "HugeHealth"
     82>
     83    <pickup>
     84          <HealthPickup
     85    health = 100
     86    healthType = "limited"
     87    activationType = "onUse"
     88    durationType = "once"
     89  />
     90    </pickup>
     91</PickupRepresentation>
  • code/trunk/data/levels/pickup.oxw

    r6524 r6711  
    3737    <PickupSpawner position="-50,0,-100" triggerDistance="10" respawnTime="30" maxSpawnedItems="10">
    3838        <pickup>
    39             <HealthPickup health=50 healthRate=5 durationType=continuous activationType=immediate healthType=permanent />
     39            <HealthPickup health=50 healthRate=5 durationType=continuous activationType=onUse healthType=permanent />
    4040        </pickup>
    4141    </PickupSpawner>
     
    7171    </PickupSpawner>
    7272
    73     <!--PickupSpawner position="100,100,100" triggerDistance="10" respawnTime="30" maxSpawnedItems="10">
     73    <PickupSpawner position="100,0,-100" triggerDistance="10" respawnTime="30" maxSpawnedItems="10">
    7474        <pickup>
    75             <HealthPickup health=50 healthRate=5 durationType=continuous activationType=immediate healthType=limited />
     75              <HealthPickup
     76    health = 100
     77    healthType = "limited"
     78    activationType = "onUse"
     79    durationType = "once"
     80  />
    7681        </pickup>
    77     </PickupSpawner-->
     82    </PickupSpawner>
    7883
    7984    <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
  • code/trunk/data/levels/templates/pickup_representation_templates.oxt

    r6524 r6711  
    107107    </PickupCollection>
    108108</Template>
     109
     110<Template name=usepickupRepresentation>
     111    <PickupRepresentation>
     112        <spawner-representation>
     113            <StaticEntity>
     114                <attached>
     115                    <Billboard position="0,0,0" colour="0.60,0.97,0.23" material="Sphere2" scale=0.1>
     116                        <attached>
     117                            <Billboard position="0,0,0" colour="0.40,0.81,0.10" material="Arrow" scale=0.65 />
     118                        </attached>
     119                    </Billboard>
     120                </attached>
     121            </StaticEntity>
     122        </spawner-representation>
     123    </PickupRepresentation>
     124</Template>
     125
     126<Template name=droppickupRepresentation>
     127    <PickupRepresentation>
     128        <spawner-representation>
     129            <StaticEntity>
     130                <attached>
     131                    <Billboard position="0,0,0" colour="0.95,0.10,0.05" material="Sphere2" scale=0.1>
     132                        <attached>
     133                            <Billboard position="0,0,0" colour="0.95,0.20,0.10" material="Arrow" scale=0.65 />
     134                        </attached>
     135                    </Billboard>
     136                </attached>
     137            </StaticEntity>
     138        </spawner-representation>
     139    </PickupRepresentation>
     140</Template>
    109141   
  • code/trunk/data/overlays/hudtemplates3.oxo

    r5980 r6711  
    101101      visible = "false"
    102102    />
     103   
     104    <GUIOverlay
     105      name = "PickupInventory"
     106      guiname = "PickupInventory"
     107      visible = "false"
     108    />
    103109
    104110  </OverlayGroup>
  • code/trunk/src/modules/pickup/CMakeLists.txt

    r6524 r6711  
    1515  FIND_HEADER_FILES
    1616  TOLUA_FILES
     17    PickupManager.h
     18    PickupRepresentation.h
    1719  DEFINE_SYMBOL
    1820    "PICKUP_SHARED_BUILD"
  • code/trunk/src/modules/pickup/PickupManager.cc

    r6540 r6711  
    3535
    3636#include "core/CoreIncludes.h"
     37#include "core/LuaState.h"
     38#include "core/GUIManager.h"
    3739#include "core/ScopedSingletonManager.h"
    3840#include "core/Identifier.h"
    3941#include "interfaces/PickupCarrier.h"
     42#include "infos/PlayerInfo.h"
    4043#include "worldentities/pawns/Pawn.h"
    4144#include "PickupRepresentation.h"
    4245
     46#include "ToluaBindPickup.h"
     47
    4348namespace orxonox
    4449{
    45 
     50    // Register tolua_open function when loading the library
     51    DeclareToluaInterface(Pickup);
     52   
    4653    ManageScopedSingleton(PickupManager, ScopeID::Root, false);
     54   
     55    /*static*/ const std::string PickupManager::guiName_s = "PickupInventory";
    4756   
    4857    /**
     
    110119    }
    111120   
     121    PickupCarrier* PickupManager::getPawn(void)
     122    {
     123        Pawn* pawn = dynamic_cast<Pawn*>(GUIManager::getInstancePtr()->getPlayer(PickupManager::guiName_s)->getControllableEntity());
     124        if(pawn == NULL)
     125            return NULL;
     126        return dynamic_cast<PickupCarrier*>(pawn);
     127    }
     128   
     129    int PickupManager::getNumCarrierChildren(PickupCarrier* carrier)
     130    {
     131        if(carrier == NULL)
     132            return 0;
     133        return carrier->getNumCarrierChildren();
     134    }
     135           
     136    PickupCarrier* PickupManager::getCarrierChild(int index, PickupCarrier* carrier)
     137    {
     138        if(carrier == NULL)
     139            return NULL;
     140        return carrier->getCarrierChild(index);
     141    }
     142   
     143    const std::string& PickupManager::getCarrierName(orxonox::PickupCarrier* carrier)
     144    {
     145        if(carrier == NULL)
     146            return BLANKSTRING;
     147        return carrier->getCarrierName();
     148    }
     149   
     150    PickupRepresentation* PickupManager::getPickupRepresentation(int index, PickupCarrier* carrier)
     151    {
     152        Pickupable* pickup = carrier->getPickup(index);
     153        if(pickup == NULL)
     154            return NULL;
     155       
     156        return this->getRepresentation(pickup->getPickupIdentifier());
     157    }
     158   
     159    int PickupManager::getNumPickups(PickupCarrier* carrier)
     160    {
     161        if(carrier == NULL)
     162            return 0;
     163        return carrier->getNumPickups();
     164    }
     165   
     166    void PickupManager::dropPickup(int index, PickupCarrier* carrier)
     167    {
     168        Pickupable* pickup = carrier->getPickup(index);
     169        carrier->drop(pickup);
     170    }
     171   
     172    void PickupManager::usePickup(int index, PickupCarrier* carrier, bool use)
     173    {
     174        Pickupable* pickup = carrier->getPickup(index);
     175        pickup->setUsed(use);
     176    }
     177   
    112178}
  • code/trunk/src/modules/pickup/PickupManager.h

    r6540 r6711  
    4444#include "core/OrxonoxClass.h"
    4545
    46 namespace orxonox
    47 {
     46namespace orxonox // tolua_export
     47{ // tolua_export
    4848
    4949    /**
    5050    @brief
    5151        Manages Pickupables.
    52         In essence has two tasks to fulfill. Firstly it must link Pickupables (through their PickupIdentifiers) and their PickupRepresentations. Secondly it manages the Pickup GUI.
     52        In essence has two tasks to fulfill. Firstly it must link Pickupables (through their PickupIdentifiers) and their PickupRepresentations. Secondly it manages the PickupInventory.
    5353        //TODO: Manage Pickup GUI.
    5454    @author
    5555        Damian 'Mozork' Frick
    5656    */
    57     class _PickupExport PickupManager : public Singleton<PickupManager>, public OrxonoxClass
    58     {
     57    class _PickupExport PickupManager // tolua_export
     58        : public Singleton<PickupManager>, public OrxonoxClass
     59    { // tolua_export
    5960        friend class Singleton<PickupManager>;
    6061       
     
    6364            virtual ~PickupManager();
    6465           
    65             static PickupManager& getInstance() { return Singleton<PickupManager>::getInstance(); }
     66            static PickupManager& getInstance() { return Singleton<PickupManager>::getInstance(); } // tolua_export
    6667           
    6768            bool registerRepresentation(const PickupIdentifier* identifier, PickupRepresentation* representation); //!< Registers a PickupRepresentation together with the PickupIdentifier of the Pickupable the PickupRepresentation represents.
    6869            PickupRepresentation* getRepresentation(const PickupIdentifier* identifier); //!< Get the PickupRepresentation representing the Pickupable with the input PickupIdentifier.
    6970           
     71            // tolua_begin
     72            orxonox::PickupCarrier* getPawn(void);
     73           
     74            int getNumCarrierChildren(orxonox::PickupCarrier* carrier);
     75            orxonox::PickupCarrier* getCarrierChild(int index, orxonox::PickupCarrier* carrier);
     76           
     77            const std::string& getCarrierName(orxonox::PickupCarrier* carrier);
     78           
     79            int getNumPickups(orxonox::PickupCarrier* carrier);
     80            PickupRepresentation* getPickupRepresentation(int index, orxonox::PickupCarrier* carrier);
     81            void dropPickup(int index, orxonox::PickupCarrier* carrier);
     82            void usePickup(int index, orxonox::PickupCarrier* carrier, bool use);
     83            // tolua_end
     84           
    7085        private:
    7186            static PickupManager* singletonPtr_s;
     87            static const std::string guiName_s;
    7288           
    7389            PickupRepresentation* defaultRepresentation_; //!< The default PickupRepresentation.
    7490            std::map<const PickupIdentifier*, PickupRepresentation*, PickupIdentifierCompare> representations_; //!< Map linking PickupIdentifiers (representing types if Pickupables) and PickupRepresentations.
    7591       
    76     };
     92    }; // tolua_export
    7793   
    78 }
     94} // tolua_export
    7995
    8096#endif // _PickupManager_H__
  • code/trunk/src/modules/pickup/PickupPrereqs.h

    r6710 r6711  
    6565namespace orxonox
    6666{
    67 
     67   
    6868    class DroppedPickup;
    6969    class Pickup;
  • code/trunk/src/modules/pickup/PickupRepresentation.cc

    r6676 r6711  
    8686        this->name_ = "Pickup";
    8787        this->spawnerTemplate_ = "";
     88        this->inventoryRepresentation_ = "Default";
    8889        this->pickup_ = NULL;
    8990    }
     
    9798        SUPER(PickupRepresentation, XMLPort, xmlelement, mode);
    9899       
    99         XMLPortParam(PickupRepresentation, "name", setName, getName, xmlelement, mode);
    100         XMLPortParam(PickupRepresentation, "description", setDescription, getDescription, xmlelement, mode);
     100        XMLPortParam(PickupRepresentation, "pickupName", setPickupName, getPickupName, xmlelement, mode);
     101        XMLPortParam(PickupRepresentation, "pickupDescription", setPickupDescription, getPickupDescription, xmlelement, mode);
    101102        XMLPortParam(PickupRepresentation, "spawnerTemplate", setSpawnerTemplate, getSpawnerTemplate, xmlelement, mode);
     103        XMLPortParam(PickupRepresentation, "inventoryRepresentation", setInventoryRepresentation, getInventoryRepresentation, xmlelement, mode);
    102104        XMLPortObject(PickupRepresentation, Pickupable, "pickup", setPickup, getPickup, xmlelement, mode);
    103105        XMLPortObject(PickupRepresentation, StaticEntity, "spawner-representation", setSpawnerRepresentation, getSpawnerRepresentationIndex, xmlelement, mode);
  • code/trunk/src/modules/pickup/PickupRepresentation.h

    r6540 r6711  
    4545#include "core/BaseObject.h"
    4646
    47 namespace orxonox
    48 {
     47namespace orxonox // tolua_export
     48{ // tolua_export
    4949
    5050    /**
     
    5353        They are created through XML and are registered with the PickupManager.
    5454    */
    55     class _PickupExport PickupRepresentation : public BaseObject
    56     {
     55    class _PickupExport PickupRepresentation // tolua_export
     56        : public BaseObject
     57    { // tolua_export
    5758       
    5859        public:
     
    6768            @param name The name.
    6869            */
    69             inline void setName(const std::string& name)
     70            inline void setPickupName(const std::string& name)
    7071                { this->name_ = name; }
    7172            /**
     
    7374            @param description The Description.
    7475            */
    75             inline void setDescription(const std::string& description)
     76            inline void setPickupDescription(const std::string& description)
    7677                { this->description_ = description; }
    7778            /**
     
    9091                { this->spawnerRepresentation_ = representation; }
    9192            /**
     93            @brief Set the image representing the pickup in the PickupInventory.
     94            @param image A string with the name of the image representing the pickup.
     95            */
     96            inline void setInventoryRepresentation(const std::string& image)
     97                { this->inventoryRepresentation_ = image; }
     98            /**
    9299            @brief Set the Pickupable that is represented by this PickupRepresentation.
    93100            @param pickup A pointer to the Pickupable.
     
    100107            @return Returns the name.
    101108            */
    102             inline const std::string& getName(void)
    103                 { return this->name_; }
     109            inline const std::string& getPickupName(void) { return this->name_; } // tolua_export
    104110            /**
    105111            @brief Get the description of the Pickupable represented by this PickupRepresentation.
    106112            @return Returns the description.
    107113            */
    108             inline const std::string& getDescription(void)
    109                 { return this->description_; }
     114            inline const std::string& getPickupDescription(void) { return this->description_; } // tolua_export
    110115            /**
    111116            @brief Get the name of spawnerTemplate the Pickupable represented by this PickupRepresentation.
     
    121126            inline const StaticEntity* getSpawnerRepresentationIndex(unsigned int index)
    122127                { if(index == 0) return this->spawnerRepresentation_; return NULL; }
     128            /**
     129            @brief Get the name of the image representing the pickup in the PickupInventory.
     130            @return Returns the name of the image as a string.
     131            */
     132            inline const std::string& getInventoryRepresentation(void) { return this->inventoryRepresentation_; } // tolua_export
    123133            /**
    124134            @brief Get the Pickupable represented by this PickupRepresentation.
     
    139149            std::string spawnerTemplate_; //!<  The name of the template of this PickupRepresentation.
    140150            StaticEntity* spawnerRepresentation_; //!< The spawnerRepresentation of this PickupRepresentation.
     151            std::string inventoryRepresentation_; //!< The name of an image representing the pickup in the PickupInventory. TODO: Exact format and placement of image?
    141152           
    142153            Pickupable* pickup_; //!< The Pickupable that is represented by this PickupRepresentation.
    143154           
    144     };
     155    }; // tolua_export
    145156
    146 }
     157} // tolua_export
    147158   
    148159#endif // _PickupRepresentation_H__
  • code/trunk/src/modules/pickup/PickupSpawner.cc

    r6563 r6711  
    180180            {
    181181                Vector3 distance = it->getWorldPosition() - this->getWorldPosition();
     182                PickupCarrier* carrier = dynamic_cast<PickupCarrier*>(*it);
    182183                //! If a Pawn, that fits the target-range of the item spawned by this Pickup, is in trigger-distance.
    183                 if (distance.length() < this->triggerDistance_ && this->pickup_->isTarget(*it))
     184                if (distance.length() < this->triggerDistance_ && carrier != NULL && carrier->isTarget(this->pickup_))
    184185                {
    185186                    this->trigger(*it);
  • code/trunk/src/orxonox/CMakeLists.txt

    r6524 r6711  
    5858    MoodManager.h
    5959    controllers/HumanController.h
     60    interfaces/PickupCarrier.h
    6061    sound/SoundManager.h
    6162  DEFINE_SYMBOL
  • code/trunk/src/orxonox/interfaces/InterfaceCompilation.cc

    r6534 r6711  
    6060        RegisterRootObject(PickupCarrier);
    6161       
     62        this->setCarrierName("PickupCarrier");
    6263    }
    6364   
  • code/trunk/src/orxonox/interfaces/PickupCarrier.h

    r6710 r6711  
    4545#include "core/OrxonoxClass.h"
    4646
    47 namespace orxonox
    48 {
     47namespace orxonox // tolua_export
     48{ // tolua_export
    4949
    5050    //! Forward-declarations.
     51    class PickupManager;
    5152    class Pickup;
    5253    class HealthPickup;
     
    6162        Damian 'Mozork' Frick
    6263    */
    63     class _OrxonoxExport PickupCarrier : virtual public OrxonoxClass
    64     {
     64    class _OrxonoxExport PickupCarrier  // tolua_export
     65        : virtual public OrxonoxClass
     66    { // tolua_export
    6567        //! So that the different Pickupables have full access to their PickupCarrier.
     68        friend class Pickupable;
     69        friend class PickupManager;
    6670        //! Friends.
    67         friend class Pickupable;
    6871        friend class Pickup;
    6972        friend class HealthPickup;
     
    120123
    121124                    //! Go recursively through all children to check whether they are a target.
    122                     std::list<PickupCarrier*>* children = this->getCarrierChildren();
    123                     for(std::list<PickupCarrier*>::const_iterator it = children->begin(); it != children->end(); it++)
     125                    std::vector<PickupCarrier*>* children = this->getCarrierChildren();
     126                    for(std::vector<PickupCarrier*>::const_iterator it = children->begin(); it != children->end(); it++)
    124127                    {
    125128                        if((*it)->isTarget(pickup))
     
    147150
    148151                    //! Go recursively through all children to check whether they are the target.
    149                     std::list<PickupCarrier*>* children = this->getCarrierChildren();
    150                     for(std::list<PickupCarrier*>::iterator it = children->begin(); it != children->end(); it++)
     152                    std::vector<PickupCarrier*>* children = this->getCarrierChildren();
     153                    for(std::vector<PickupCarrier*>::iterator it = children->begin(); it != children->end(); it++)
    151154                    {
    152155                        if(pickup->isTarget(*it))
     
    166169            */
    167170            virtual const Vector3& getCarrierPosition(void) = 0;
    168 
    169         protected:
     171           
     172            /**
     173            @brief Get the name of this PickupCarrier.
     174            @return Returns the name as a string.
     175            */
     176            const std::string& getCarrierName(void) { return this->carrierName_; } // tolua_export
     177           
     178        protected:       
    170179            /**
    171180            @brief Get all direct children of this PickupSpawner.
     
    174183            @return Returns a pointer to a list of all direct children.
    175184            */
    176             virtual std::list<PickupCarrier*>* getCarrierChildren(void) = 0;
     185            virtual std::vector<PickupCarrier*>* getCarrierChildren(void) = 0;
    177186            /**
    178187            @brief Get the parent of this PickupSpawner
     
    188197            std::set<Pickupable*>& getPickups(void)
    189198                { return this->pickups_; }
    190 
     199               
     200            /**
     201            @brief Set the name of this PickupCarrier.
     202                   The name needs to be set in the constructor of every class inheriting from PickupCarrier, by calling setCarrierName().
     203            @param name The name to be set.
     204            */
     205            void setCarrierName(const std::string& name)
     206                { this->carrierName_ = name; }
     207       
    191208        private:
    192209            std::set<Pickupable*> pickups_; //!< The list of Pickupables carried by this PickupCarrier.
    193 
    194     };
    195 }
     210            std::string carrierName_; //!< The name of the PickupCarrier, as displayed in the PickupInventory.
     211           
     212            /**
     213            @brief Get the number of carrier children this PickupCarrier has.
     214            @return Returns the number of carrier children.
     215            */
     216            unsigned int getNumCarrierChildren(void)
     217                {
     218                    std::vector<PickupCarrier*>* list = this->getCarrierChildren();
     219                    unsigned int size = list->size();
     220                    delete list;
     221                    return size;
     222                }
     223           
     224            /**
     225            @brief Get the index-th child of this PickupCarrier.
     226            @param index The index of the child to return.
     227            @return Returns the index-th child.
     228            */
     229            PickupCarrier* getCarrierChild(unsigned int index)
     230                {
     231                    std::vector<PickupCarrier*>* list = this->getCarrierChildren();
     232                    if(list->size() < index)
     233                        return NULL;
     234                    PickupCarrier* carrier = (*list)[index];
     235                    delete list;
     236                    return carrier;
     237                }
     238           
     239            /**
     240            @brief Get the number of Pickupables this PickupCarrier carries.
     241            @return returns the number of pickups.
     242            */
     243            unsigned int getNumPickups(void)
     244                { return this->pickups_.size(); }
     245           
     246            /**
     247            @brief Get the index-th Pickupable of this PickupCarrier.
     248            @param index The index of the Pickupable to return.
     249            @return Returns the index-th pickup.
     250            */
     251            Pickupable* getPickup(unsigned int index)
     252                {
     253                    std::set<Pickupable*>::iterator it;
     254                    for(it = this->pickups_.begin(); index != 0 && it != this->pickups_.end(); it++)
     255                        index--;
     256                    if(it == this->pickups_.end())
     257                        return NULL;
     258                    return *it;
     259                }
     260           
     261    }; // tolua_export
     262} // tolua_export
    196263
    197264#endif /* _PickupCarrier_H__ */
  • code/trunk/src/orxonox/items/Engine.cc

    r6709 r6711  
    6464        this->boostBlur_ = 0;
    6565
     66        this->setCarrierName("Engine");
    6667        this->speedAdd_ = 0.0;
    6768        this->speedMultiply_ = 1.0;
  • code/trunk/src/orxonox/items/Engine.h

    r6709 r6711  
    122122
    123123        protected:
    124             virtual std::list<PickupCarrier*>* getCarrierChildren(void)
    125                 { return new std::list<PickupCarrier*>(); }
     124            virtual std::vector<PickupCarrier*>* getCarrierChildren(void)
     125                { return new std::vector<PickupCarrier*>(); }
    126126            virtual PickupCarrier* getCarrierParent(void);
    127127
  • code/trunk/src/orxonox/overlays/OrxonoxOverlay.cc

    r6502 r6711  
    327327        {
    328328            OrxonoxOverlay* overlay= it->second;
     329            COUT(1) << "MUP" << std::endl;
    329330            if(overlay->isVisible())
     331            {
    330332                overlay->hide();
     333                COUT(1) << "HIDE " << name << std::endl;
     334            }
    331335            else
     336            {
    332337                overlay->show();
     338                COUT(1) << "SHOW " << name << std::endl;
     339            }
    333340        }
    334341    }
  • code/trunk/src/orxonox/worldentities/pawns/Pawn.cc

    r6540 r6711  
    7878        else
    7979            this->weaponSystem_ = 0;
     80       
     81        this->setCarrierName("Pawn");
    8082
    8183        this->setRadarObjectColour(ColourValue::Red);
  • code/trunk/src/orxonox/worldentities/pawns/Pawn.h

    r6540 r6711  
    3737#include "worldentities/ControllableEntity.h"
    3838
    39 namespace orxonox
    40 {
    41     class _OrxonoxExport Pawn : public ControllableEntity, public RadarViewable, public PickupCarrier
    42     {
     39namespace orxonox // tolua_export
     40{ // tolua_export
     41    class _OrxonoxExport Pawn // tolua_export
     42        : public ControllableEntity, public RadarViewable, public PickupCarrier
     43    { // tolua_export
    4344        friend class WeaponSystem;
    4445
     
    132133            bool bAlive_;
    133134
    134             virtual std::list<PickupCarrier*>* getCarrierChildren(void)
    135                 { return new std::list<PickupCarrier*>(); }
     135            virtual std::vector<PickupCarrier*>* getCarrierChildren(void)
     136                { return new std::vector<PickupCarrier*>(); }
    136137            virtual PickupCarrier* getCarrierParent(void)
    137138                { return NULL; }
     
    155156
    156157            Vector3 aimPosition_;
    157     };
    158 }
     158    }; // tolua_export
     159} // tolua_export
    159160
    160161#endif /* _Pawn_H__ */
  • code/trunk/src/orxonox/worldentities/pawns/SpaceShip.cc

    r6709 r6711  
    221221    }
    222222
    223     std::list<PickupCarrier*>* SpaceShip::getCarrierChildren(void)
    224     {
    225         std::list<PickupCarrier*>* list = new std::list<PickupCarrier*>();
    226         list->push_front(this->engine_);
     223    std::vector<PickupCarrier*>* SpaceShip::getCarrierChildren(void)
     224    {
     225        std::vector<PickupCarrier*>* list = new std::vector<PickupCarrier*>();
     226        list->push_back(this->engine_);
    227227        return list;
    228228    }
  • code/trunk/src/orxonox/worldentities/pawns/SpaceShip.h

    r6709 r6711  
    8686
    8787        protected:
    88             virtual std::list<PickupCarrier*>* getCarrierChildren(void);
     88            virtual std::vector<PickupCarrier*>* getCarrierChildren(void);
    8989            bool bInvertYAxis_;
    9090
Note: See TracChangeset for help on using the changeset viewer.