Помощь с mimgui и fAwesome5.

_Lucky

Новичок
Автор темы
5
1
Версия MoonLoader
.026-beta
Приветствую.
Как правильно подключить библиотеку с иконками и использовать её в mimgui скрипте?
Если несложно, дайте, пожалуйста, наглядный пример использования.
 
Решение
Там есть примеры:
В этой теме я покажу как установить fAwesome 4 и 5 версии. Создать тему я решил так как заебался объяснять всем что надо устанавливать не только скрипт, но и шрифт.

fAwesome 4
  • скачиваем луа файл ( НАЖМИ ЧТО БЫ СКАЧАТЬ )
  • переносим луа файл в папку moonloader\lib
  • скачиваем архив FontAwesome с офф сайта ( НАЖМИ ЧТО БЫ СКАЧАТЬ )
  • открываем скачанный архив
  • переходим в папку которая находится в архиве
  • открываем папку "fonts"
  • переносим файл fontawesome-webfont.ttf в папку moonloader/resource/fonts
  • готово, fAwesome 4 установлен
Список иконок fAwesome 4




fAwesome 5
  • скачиваем луа...

blessave

Известный
364
108
 

lorgon

Известный
656
271
Там есть примеры:
В этой теме я покажу как установить fAwesome 4 и 5 версии. Создать тему я решил так как заебался объяснять всем что надо устанавливать не только скрипт, но и шрифт.

fAwesome 4
  • скачиваем луа файл ( НАЖМИ ЧТО БЫ СКАЧАТЬ )
  • переносим луа файл в папку moonloader\lib
  • скачиваем архив FontAwesome с офф сайта ( НАЖМИ ЧТО БЫ СКАЧАТЬ )
  • открываем скачанный архив
  • переходим в папку которая находится в архиве
  • открываем папку "fonts"
  • переносим файл fontawesome-webfont.ttf в папку moonloader/resource/fonts
  • готово, fAwesome 4 установлен
Список иконок fAwesome 4




fAwesome 5
  • скачиваем луа файл ( НАЖМИ ЧТО БЫ СКАЧАТЬ )
  • переносим луа файл в папку moonloader\lib
  • скачиваем архив FontAwesome с офф сайта ( НАЖМИ ЧТО БЫ СКАЧАТЬ )
  • переносим файл fa-solid-900.ttf в папку moonloader/resource/fonts
  • готово, fAwesome 5 установлен
Список иконок fAwesome 5

Если нет папки fonts, то ее нужно создать




fAwesome 4: *клик*
fAwesome 5: *клик*
Lua:
local fa = require 'faIcons'

local fa_font = nil
local fa_glyph_ranges = imgui.ImGlyphRanges({ fa.min_range, fa.max_range })
function imgui.BeforeDrawFrame()
    if fa_font == nil then
        local font_config = imgui.ImFontConfig()
        font_config.MergeMode = true
        fa_font = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/resource/fonts/fontawesome-webfont.ttf', 14.0, font_config, fa_glyph_ranges)
    end
end
Lua:
local fa = require 'fAwesome5'

local fa_font = nil
local fa_glyph_ranges = imgui.ImGlyphRanges({ fa.min_range, fa.max_range })
function imgui.BeforeDrawFrame()
    if fa_font == nil then
        local font_config = imgui.ImFontConfig()
        font_config.MergeMode = true

        fa_font = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/resource/fonts/fa-solid-900.ttf', 13.0, font_config, fa_glyph_ranges)
    end
end
Lua:
local fa = require("fAwesome5")
imgui.OnInitialize(function()
    local config = imgui.ImFontConfig()
    config.MergeMode = true
    local glyph_ranges = imgui.GetIO().Fonts:GetGlyphRangesCyrillic()
    local iconRanges = imgui.new.ImWchar[3](fa.min_range, fa.max_range, 0)
    imgui.GetIO().Fonts:AddFontFromFileTTF('trebucbd.ttf', 14.0, nil, glyph_ranges)
    icon = imgui.GetIO().Fonts:AddFontFromFileTTF('moonloader/resource/fonts/fa-solid-900.ttf', 14.0, config, iconRanges)
end)
все ссылки взяты с офф источников

Посмотреть вложение 134202
Jam Icons - это набор значков SVG, предназначенных для веб-проектов, иллюстраций, печатных проектов и т.д.
Я же сделал из них шрифт и переделал библиотеку ФИПа, что-бы ими можно было нормально пользоваться.

Ссылки​

Оригинальный сайт: сайт
Репозитория на GitHub: тут

Использование​

  • Выбор подходящего значка
Что-бы выбрать подходящую иконку, Вам нужно перейти на оригинальный сайт и с помощью поиска найти её.​
После того как Вы нашли, вам стоит навестиcь на неё и скопировать название.​
  1. Если название содержит символ "-", то Вам стоит заменить его на "_".
  2. Если Вы хотите вызвать значок как jam.WORLD, то стоит перевести все буквы в верхний регистр.

  • Общий пример
Общий пример:
local jamin, jamax = jam.min_range,  jam.max_range
local apple = jam 'apple'
local music = jam(0xeb4d)
local world = jam.WORLD

local font_data = jam.get_font_data_base85()

  • Готовый скрипт
Lua:
local imgui = require 'mimgui'
local ffi = require 'ffi'
local new = imgui.new

local jam = require 'jamicons' -- Подключаем нужную библиотеку
local font = {}

function main()
    wait(-1)
end

local ui = imgui.OnFrame( -- Рендерим окно
    function() return true end,
    function(player)
        imgui.Begin('Jam ICONS')
        imgui.Text('EXAMPLES:\n')
        imgui.PushFont(font['jam']) -- Применяем шрифт только к определённому тексту

        imgui.Text(jam.WORLD)
        imgui.SameLine()
        imgui.Text(jam['FLAME'])
        imgui.SameLine()
        imgui.Text(jam(0xeb4d))

        imgui.PopFont()
        imgui.End()
    end)

imgui.OnInitialize(function()
  local font_config = imgui.ImFontConfig()
  font_config.SizePixels = 20;
  local iconRanges = new.ImWchar[3](jam.min_range, jam.max_range, 0)
  font['jam'] = imgui.GetIO().Fonts:AddFontFromMemoryCompressedBase85TTF(jam.get_font_data_base85(), 24, font_config, iconRanges) -- Подгружаем наш шрифт прямиком из библиотеки
end)
Посмотреть вложение 134197


Установка​

  1. Скачать jamicons.lua
  2. Закинуть его в moonloader/lib/