[Orxonox-commit 7093] r11710 - code/trunk/data/gui/scripts

landauf at orxonox.net landauf at orxonox.net
Sun Jan 7 00:50:29 CET 2018


Author: landauf
Date: 2018-01-07 00:50:29 +0100 (Sun, 07 Jan 2018)
New Revision: 11710

Modified:
   code/trunk/data/gui/scripts/PickupInventory.lua
Log:
fixed two bugs in PickupInventory.lua:
 - the update function had a messed up logic regarding the use-button in the detail window (condition was partially inverted)
 - updating the event subscription of the use-button in the detail-window doesn't seem to work - probably CEGUI doesn't like updating/changing/overriding an event while begin IN a mouse-click-event already. moving the logic to the Use/Unuse-function instead seems to work.

Modified: code/trunk/data/gui/scripts/PickupInventory.lua
===================================================================
--- code/trunk/data/gui/scripts/PickupInventory.lua	2018-01-06 23:46:52 UTC (rev 11709)
+++ code/trunk/data/gui/scripts/PickupInventory.lua	2018-01-06 23:50:29 UTC (rev 11710)
@@ -50,15 +50,13 @@
                     P.detailPickups[k] = nil
                 else
                     useButton:setEnabled(true)
-                    if pickup.inUse == true then
-                        useButton:setText("unuse")
-                        orxonox.GUIManager:subscribeEventHelper(useButton, "Clicked", P.name .. ".InventoryUseDetailButton_clicked")
+                    if pickup.inUse == false then
+                        useButton:setText("use")
                         if pickup.usable == false then
                             useButton:setEnabled(false)
                         end
                     else
-                        useButton:setText("use")
-                        orxonox.GUIManager:subscribeEventHelper(useButton, "Clicked", P.name .. ".InventoryUnuseDetailButton_clicked")
+                        useButton:setText("unuse")
                         if pickup.unusable == false then
                             useButton:setEnabled(false)
                         end
@@ -134,17 +132,16 @@
     useButton:setSize(CEGUI.UVector2(CEGUI.UDim(0, P.buttonWidth), CEGUI.UDim(0, P.textHeight)))
     if pickup.inUse == false then
         useButton:setText("use")
-        orxonox.GUIManager:subscribeEventHelper(useButton, "Clicked", P.name .. ".InventoryUseButton_clicked")
         if pickup.usable == false then
             useButton:setEnabled(false)
         end
     else
         useButton:setText("unuse")
-        orxonox.GUIManager:subscribeEventHelper(useButton, "Clicked", P.name .. ".InventoryUnuseButton_clicked")
         if pickup.unusable == false then
             useButton:setEnabled(false)
         end
     end
+    orxonox.GUIManager:subscribeEventHelper(useButton, "Clicked", P.name .. ".InventoryUseUnuseButton_clicked")
     item:addChildWindow(useButton)
 
     local dropButton = winMgr:createWindow("MenuWidgets/Button", name .. "/DropButton")
@@ -239,17 +236,16 @@
     useButton:setSize(CEGUI.UVector2(CEGUI.UDim(0, P.buttonWidth), CEGUI.UDim(0, P.textHeight)))
     if pickup.inUse == false then
         useButton:setText("use")
-        orxonox.GUIManager:subscribeEventHelper(useButton, "Clicked", P.name .. ".InventoryUseDetailButton_clicked")
         if pickup.usable == false then
             useButton:setEnabled(false)
         end
     else
         useButton:setText("unuse")
-        orxonox.GUIManager:subscribeEventHelper(useButton, "Clicked", P.name .. ".InventoryUnuseDetailButton_clicked")
         if pickup.unusable == false then
             useButton:setEnabled(false)
         end
     end
+    orxonox.GUIManager:subscribeEventHelper(useButton, "Clicked", P.name .. ".InventoryUseUnuseDetailButton_clicked")
     wrapper:addChildWindow(useButton)
     
     local dropButton = winMgr:createWindow("MenuWidgets/Button", name .. "/DropButton")
@@ -274,18 +270,16 @@
     return number+1
 end
 
-function P.InventoryUseButton_clicked(e)
+function P.InventoryUseUnuseButton_clicked(e)
     local pickupIndex = P.windowToPickupHelper(e)
     local pickup = P.pickupsList[pickupIndex]
-    orxonox.PickupManager:getInstance():usePickup(pickup.pickup, true)
+    if pickup.inUse == false then
+        orxonox.PickupManager:getInstance():usePickup(pickup.pickup, true)
+    else
+        orxonox.PickupManager:getInstance():usePickup(pickup.pickup, false)
+    end
 end
 
-function P.InventoryUnuseButton_clicked(e)
-    local pickupIndex = P.windowToPickupHelper(e)
-    local pickup = P.pickupsList[pickupIndex]
-    orxonox.PickupManager:getInstance():usePickup(pickup.pickup, false)
-end
-
 function P.InventoryDropButton_clicked(e)
     local pickupIndex = P.windowToPickupHelper(e)
     local pickup = P.pickupsList[pickupIndex]
@@ -297,18 +291,16 @@
     P.createDetailsWindow(pickupIndex)
 end
 
-function P.InventoryUseDetailButton_clicked(e)
+function P.InventoryUseUnuseDetailButton_clicked(e)
     local pickupIndex = P.windowToPickupHelper(e)
     local pickup = P.detailPickups[pickupIndex]
-    orxonox.PickupManager:getInstance():usePickup(pickup.pickup, true)
+    if pickup.inUse == false then
+        orxonox.PickupManager:getInstance():usePickup(pickup.pickup, true)
+    else
+        orxonox.PickupManager:getInstance():usePickup(pickup.pickup, false)
+    end
 end
 
-function P.InventoryUnuseDetailButton_clicked(e)
-    local pickupIndex = P.windowToPickupHelper(e)
-    local pickup = P.detailPickups[pickupIndex]
-    orxonox.PickupManager:getInstance():usePickup(pickup.pickup, false)
-end
-
 function P.InventoryDropDetailButton_clicked(e)
     local pickupIndex = P.windowToPickupHelper(e)
     local pickup = P.detailPickups[pickupIndex]



More information about the Orxonox-commit mailing list