@@ -29,7 +29,7 @@ function createCurrentBrowser ()
29
29
local windowWidth = screenX * width
30
30
local windowHeight = screenY * height
31
31
currentBrowserGUI .browser = guiCreateWindow ( 1 - width , 0 , width , height , " Current Elements..." , true )
32
- currentBrowserGUI .gridlist = browserList :create (12 , 85 , windowWidth , windowHeight - 128 ,{{[" Name" ]= 0.85 }},false , currentBrowserGUI .browser )
32
+ currentBrowserGUI .gridlist = browserList :create (12 , 85 , windowWidth , windowHeight - 128 ,{{[" Name [ID] " ]= 0.85 }},false , currentBrowserGUI .browser )
33
33
currentBrowserGUI .search = guiCreateEdit ( 12 , 50 , windowWidth , 30 , " Search..." , false , currentBrowserGUI .browser )
34
34
currentBrowserGUI .dropdown = editingControl .dropdown :create {[" x" ]= 12 ,[" y" ]= 25 ,[" width" ]= windowWidth ,[" height" ]= 20 ,[" dropWidth" ]= windowWidth ,[" dropHeight" ]= 200 ,[" relative" ]= false ,[" parent" ]= currentBrowserGUI .browser ,[" rows" ]= {" " }}
35
35
-- linked to options
@@ -178,25 +178,29 @@ function currentBrowser.isolateElement (element,bool)
178
178
end
179
179
180
180
181
- function currentBrowser .gridlistClick (cellrow )
182
- if cellrow ~= 0 then
183
- local id = currentBrowserGUI .gridlist :getSelectedText ()
184
- cSelectedElement = getElementByID ( id )
185
- editor_main .selectElement ( cSelectedElement , 2 , false , cSelectedElement , cSelectedElement , true )
186
- if ( dialog .autosnap :getValue () ) then
187
- autoSnap ( cSelectedElement )
188
- end
189
- if ( dimensionElement ) then
190
- setElementDimension ( dimensionElement , workingDimension )
191
- setElementDimension ( cSelectedElement , hiddenDimension )
192
- dimensionElement = cSelectedElement
193
- end
194
- elseif ( dimensionElement ) then
195
- setElementDimension ( dimensionElement , workingDimension )
196
- setElementDimension ( localPlayer , workingDimension )
197
- guiCheckBoxSetSelected ( currentBrowserGUI .isolate , false )
198
- dimensionElement = false
199
- end
181
+ function currentBrowser .gridlistClick (cellrow )
182
+ if cellrow ~= 0 then
183
+ local fullText = currentBrowserGUI .gridlist :getSelectedText ()
184
+ -- Extract just the element name portion (before the bracket)
185
+ local elementName = string.match (fullText , " ^([^%[]+)" )
186
+ -- Trim any spaces at the end
187
+ elementName = string.gsub (elementName , " %s+$" , " " )
188
+ cSelectedElement = getElementByID (elementName )
189
+ editor_main .selectElement (cSelectedElement , 2 , false , cSelectedElement , cSelectedElement , true )
190
+ if (dialog .autosnap :getValue ()) then
191
+ autoSnap (cSelectedElement )
192
+ end
193
+ if (dimensionElement ) then
194
+ setElementDimension (dimensionElement , workingDimension )
195
+ setElementDimension (cSelectedElement , hiddenDimension )
196
+ dimensionElement = cSelectedElement
197
+ end
198
+ elseif (dimensionElement ) then
199
+ setElementDimension (dimensionElement , workingDimension )
200
+ setElementDimension (localPlayer , workingDimension )
201
+ guiCheckBoxSetSelected (currentBrowserGUI .isolate , false )
202
+ dimensionElement = false
203
+ end
200
204
end
201
205
202
206
function currentBrowser .doubleClick ()
@@ -303,10 +307,16 @@ function applySearch ( array, query )
303
307
end
304
308
305
309
function setTableElementIDs (elemTable )
306
- for k ,v in pairs (elemTable ) do
307
- elemTable [k ] = tostring (getElementID (v ))
308
- end
309
- return elemTable
310
+ local elementsWithIDs = {}
311
+ for k , v in pairs (elemTable ) do
312
+ local elementID = getElementID (v )
313
+ local numericID = " "
314
+ if getElementType (v ) == " object" or getElementType (v ) == " vehicle" or getElementType (v ) == " ped" then
315
+ numericID = " [" .. (getElementData (v , " model" ) or getElementModel (v ) or " Unknown" ) .. " ]"
316
+ end
317
+ elementsWithIDs [k ] = tostring (elementID ) .. " " .. tostring (numericID )
318
+ end
319
+ return elementsWithIDs
310
320
end
311
321
312
322
function clearReps ( elemTable )
@@ -429,31 +439,35 @@ function showCurrentBrowser ( elementArray, ignoredElements, elementType, resour
429
439
end
430
440
431
441
function closeCurrentBrowser ()
432
- if ( not currentBrowser .showing ) then return end
433
- currentBrowser .showing = false
434
- cSelectedElement = false
435
- if ( callbackFunction ) then
436
- local id = currentBrowserGUI .gridlist :getSelectedText ()
437
- if ( not id ) then
438
- callbackFunction (false )
439
- else
440
- callbackFunction (id )
441
- end
442
- callbackFunction = nil
443
- end
444
- currentBrowserGUI .gridlist :disable ()
445
- guiCheckBoxSetSelected ( currentBrowserGUI .isolate , false )
446
- if ( dimensionElement ) then
447
- setElementDimension ( dimensionElement , workingDimension )
448
- setElementDimension ( localPlayer , workingDimension )
449
- dimensionElement = false
450
- end
451
- guiSetVisible ( currentBrowserGUI .browser , false )
452
- dumpSettings ()
453
- xmlSaveFile ( settingsXML )
454
- removeEventHandler ( " onClientGUIWorldClick" , root , currentBrowser .searchClick )
455
- removeEventHandler ( " onClientElementCreate" ,root ,currentBrowser .prepareSearch )
456
- removeEventHandler ( " onClientElementDestroyed" ,root ,currentBrowser .prepareSearch )
442
+ if (not currentBrowser .showing ) then return end
443
+ currentBrowser .showing = false
444
+ cSelectedElement = false
445
+ if (callbackFunction ) then
446
+ local fullText = currentBrowserGUI .gridlist :getSelectedText ()
447
+ if (not fullText ) then
448
+ callbackFunction (false )
449
+ else
450
+ -- Extract just the element name portion (before the bracket)
451
+ local elementName = string.match (fullText , " ^([^%[]+)" )
452
+ -- Trim any spaces at the end
453
+ elementName = string.gsub (elementName , " %s+$" , " " )
454
+ callbackFunction (elementName )
455
+ end
456
+ callbackFunction = nil
457
+ end
458
+ currentBrowserGUI .gridlist :disable ()
459
+ guiCheckBoxSetSelected (currentBrowserGUI .isolate , false )
460
+ if (dimensionElement ) then
461
+ setElementDimension (dimensionElement , workingDimension )
462
+ setElementDimension (localPlayer , workingDimension )
463
+ dimensionElement = false
464
+ end
465
+ guiSetVisible (currentBrowserGUI .browser , false )
466
+ dumpSettings ()
467
+ xmlSaveFile (settingsXML )
468
+ removeEventHandler (" onClientGUIWorldClick" , root , currentBrowser .searchClick )
469
+ removeEventHandler (" onClientElementCreate" , root , currentBrowser .prepareSearch )
470
+ removeEventHandler (" onClientElementDestroyed" , root , currentBrowser .prepareSearch )
457
471
end
458
472
459
473
function restoreSelectedElement ()
0 commit comments