ed
This commit is contained in:
		
							parent
							
								
									510e3ffcf2
								
							
						
					
					
						commit
						f43cf424cf
					
				
					 305 changed files with 34683 additions and 0 deletions
				
			
		|  | @ -0,0 +1,96 @@ | |||
| local resourceName = "lation_ui" | ||||
| local configValue = BridgeClientConfig.MenuSystem | ||||
| if (configValue == "auto" and GetResourceState(resourceName) ~= "started") or (configValue ~= "auto" and configValue ~= resourceName) then return end | ||||
| Menus = Menus or {} | ||||
|  | ||||
| local function runCheckForImageIcon(icon) | ||||
|     local iconStr = tostring(icon):lower() | ||||
|     if iconStr:match("^https?://") or iconStr:match("^nui://") or iconStr:match("^file://") then | ||||
|         return true | ||||
|     end | ||||
|  | ||||
|     local extensions = {".png", ".jpg", ".jpeg", ".gif", ".bmp", ".svg", ".webp", ".ico"} | ||||
|     for _, ext in pairs(extensions) do | ||||
|         if iconStr:match(ext .. "$") then | ||||
|             return true | ||||
|         end | ||||
|     end | ||||
|  | ||||
|     return false | ||||
| end | ||||
|  | ||||
| ---Converts a QB menu to an Lation menu. | ||||
| ---@param id string The menu ID. | ||||
| ---@param menu table The QB menu data. | ||||
| ---@return table The Lation menu data. | ||||
| local function QBToLationMenu(id, menu) | ||||
|     local lationMenu = { | ||||
|         id = id, | ||||
|         title = "", | ||||
|         canClose = true, | ||||
|         options = {}, | ||||
|     } | ||||
|     for i, v in pairs(menu) do | ||||
|         if v.isMenuHeader then | ||||
|             if lationMenu.title == "" then | ||||
|                 lationMenu.title = v.header | ||||
|             end | ||||
|         else | ||||
|             local option = { | ||||
|                 title = v.header, | ||||
|                 description = v.txt, | ||||
|                 icon = v.icon, | ||||
|                 args = v.params.args, | ||||
|                 onSelect = function(selected, secondary, args) | ||||
|                     local params = menu[id]?.options?[selected]?.params | ||||
|                     if not params then return end | ||||
|                     local event = params.event | ||||
|                     local isServer = params.isServer | ||||
|                     if not event then return end | ||||
|                     if isServer then | ||||
|                         return TriggerServerEvent(event, args) | ||||
|                     end | ||||
|                     return TriggerEvent(event, args) | ||||
|                 end | ||||
|  | ||||
|             } | ||||
|             table.insert(lationMenu.options, option) | ||||
|         end | ||||
|     end | ||||
|     return lationMenu | ||||
| end | ||||
|  | ||||
| local function OxToLationMenu(data) | ||||
|     local repack = { | ||||
|         id = data.id, | ||||
|         title = data.title or "", | ||||
|         canClose = data.canClose ~= false, | ||||
|         options = {} | ||||
|     } | ||||
|     -- Handle icon colors: remove for image icons, convert strings to hex for others | ||||
|     for k, v in pairs(data.options) do | ||||
|         if v.iconColor then | ||||
|             if v.icon and runCheckForImageIcon(v.icon) then | ||||
|                 v.iconColor = nil | ||||
|             end | ||||
|         end | ||||
|         table.insert(repack.options, v) | ||||
|     end | ||||
|  | ||||
|     return repack | ||||
| end | ||||
|  | ||||
| function OpenMenu(id, data, useQBinput) | ||||
|     if useQBinput then | ||||
|         data = QBToLationMenu(id, data) | ||||
|     else | ||||
|         data = OxToLationMenu(data) | ||||
|     end | ||||
|     exports.lation_ui:registerMenu(data) | ||||
|     exports.lation_ui:showMenu(id) | ||||
|     return data | ||||
| end | ||||
|  | ||||
| function GetMenuResourceName() | ||||
|     return resourceName | ||||
| end | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Nordi98
						Nordi98