local Gui = require 'utils.gui' local Token = require 'utils.token' local module_name = Gui.uid_name() local changelog = { versions = {} } local Public = {} function Public.SetVersions(versions) for i = 1, #versions do local v = versions[i] if v.ver == nil or v.date == nil or v.desc == nil then log('ERROR in changelog.SetVersions missing ver, date or desc from version#' .. i .. ' got:\n' .. serpent.line(v)) return end end changelog.versions = versions end local function create_changelog(data) local frame = data.frame frame.clear() frame.style.padding = 4 frame.style.margin = 0 local scroll = frame.add { type = 'scroll-pane', name = 'scroll_changelog', direction = 'vertical', horizontal_scroll_policy = 'never', vertical_scroll_policy = 'auto' } for i = 1, #changelog.versions do local v = changelog.versions[i] local l = scroll.add {type = 'label', caption = 'Version ' .. v.ver .. ' -- ' .. v.date} l.style.font = 'heading-1' l.style.font_color = {r = 0.2, g = 0.9, b = 0.2} l.style.minimal_width = 780 l.style.horizontal_align = 'center' l.style.vertical_align = 'center' local c = scroll.add {type = 'label', caption = v.desc} c.style.font = 'heading-2' c.style.single_line = false c.style.font_color = {r = 0.85, g = 0.85, b = 0.88} c.style.minimal_width = 780 c.style.horizontal_align = 'left' c.style.vertical_align = 'center' local line_v = scroll.add {type = 'line'} line_v.style.top_margin = 4 line_v.style.bottom_margin = 4 end end local create_changelog_token = Token.register(create_changelog) Gui.on_click( module_name, function(event) local player = event.player Gui.reload_active_tab(player) end ) Gui.add_tab_to_gui({name = module_name, caption = 'Changelog', id = create_changelog_token, admin = false}) return Public