Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 20, 2009, 8:55:23 PM (15 years ago)
Author:
danielh
Message:

Moved most of the inventory logic to C++ (slight speedup, but still slow)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • data/media/gui/scripts/PickupInventory.lua

    r5506 r5526  
    11layoutPath = "PickupInventory.layout"
     2
     3-- variables
     4local winMgr = CEGUI.WindowManager:getSingleton()
     5local lastEquipmentCount_ = 0
     6local lastUsableCount_ = 0
     7
     8local currentUsableID_ = -1
     9local lastUsedEquipID_ = 0
     10local lastUsedUsableID_ = 0
    211
    312-- events
     
    716end
    817function frmUpdate(e)
     18    local equipCount = orxonox.PickupInventory:getEquipmentCount()
     19    local usableCount = orxonox.PickupInventory:getUsableCount()
    920   
     21    if equipCount ~= lastEquipmentCount_ or usableCount ~= lastUsableCount_ then
     22        updateTabs()
     23    end
    1024end
    1125
    12 function noButtonClicked(e)
    13     orxonox.PickupInventory:toggleInventory()
     26function itemClicked(e)
     27    local w = CEGUI.toWindowEventArgs(e).window
     28    local name = w:getName()
     29    local t = name:sub(25, 27)
     30    local i = name:sub(29)
     31   
     32    if t == "equ" then
     33       
     34    end
     35   
     36    if t == "use" then
     37        if currentUsableID_ >= 0 then
     38            winMgr:getWindow("orxonox/Inventory/Title/use/" .. currentUsableID_):setProperty("TextColours", "tl:FFFFFFFF tr:FFFFFFFF bl:FFFFFFFF br:FFFFFFFF")
     39        end
     40        orxonox.PickupInventory:selectUsable(tonumber(i))
     41        currentUsableID_ = tonumber(i)
     42        winMgr:getWindow("orxonox/Inventory/Title/use/" .. i):setProperty("TextColours", "tl:FFFF4444 tr:FFFF4444 bl:FFFF4444 br:FFFF4444")
     43    end
    1444end
     45
     46-- methods
     47function updateTabs()
     48    local eqWin = winMgr:getWindow("orxonox/Inventory/TabControl/TabEquipment")
     49    local usWin = winMgr:getWindow("orxonox/Inventory/TabControl/TabUsable")
     50    orxonox.PickupInventory:clearInventory(winMgr, lastEquipmentCount_, lastUsableCount_)
     51    orxonox.PickupInventory:updateTabs(winMgr, eqWin, usWin)
     52   
     53    currentUsableID_ = orxonox.PickupInventory:getCurrentUsableIndex()
     54    lastEquipmentCount_ = orxonox.PickupInventory:getEquipmentCount()
     55    lastUsableCount_ = orxonox.PickupInventory:getUsableCount()
     56end
Note: See TracChangeset for help on using the changeset viewer.