mirror of
https://gitlab.com/4w/mtimer.git
synced 2024-11-28 10:13:50 +01:00
0e281498a3
option was renamed to `scale` instead of `size` because `scale` describes the technical fact better than `size`. Please also see DEVELOPERS message in `hud_element_scale.lua` file if you’re interested in contributing to this project. Addresses https://gitlab.com/4w/mtimer/-/issues/16
148 lines
5.2 KiB
Lua
148 lines
5.2 KiB
Lua
-- Localise needed functions
|
|
local m = mtimer
|
|
local S = m.translator
|
|
local esc = minetest.formspec_escape
|
|
local line = mtimer.get_table_line
|
|
|
|
|
|
-- Formspecs are loaded and shown by individual functions. The function name
|
|
-- correlates with the formspec to show. All of the names are self-explanatory
|
|
-- and within the functions no logic is used.
|
|
--
|
|
-- Some formspec functions are separated into individual files because they are
|
|
-- very complex and/or need helper functions.
|
|
--
|
|
-- @see mtimer.show_formspec
|
|
-- @see mtimer.get_times
|
|
-- @see ./system/on_receive_fields.lua
|
|
-- @see ./system/chat_command.lua
|
|
-- @see ./system/formspecs/*
|
|
-- @see https://dev.minetest.net/formspec
|
|
|
|
|
|
mtimer.dialog.set_visibility = function (player_name)
|
|
local player = minetest.get_player_by_name(player_name)
|
|
local visible = player:get_meta():get_string(m.meta.visible.key)
|
|
local status = visible == 'true' and S('visible') or S('invisible')
|
|
|
|
mtimer.show_formspec('mtimer:set_visibility', {
|
|
title = S('Visibility'),
|
|
show_to = player_name,
|
|
formspec = {
|
|
mtimer.get_icon_button('set_visible', {
|
|
width = 4,
|
|
label = S('Make visible')
|
|
}),
|
|
mtimer.get_icon_button('set_invisible', {
|
|
width = 4,
|
|
label = S('Make invisible'),
|
|
container = { left = 4.25 }
|
|
}),
|
|
'label[0,1.25;'..S('The timer is currently @1.', status)..']'
|
|
}
|
|
})
|
|
end
|
|
|
|
|
|
mtimer.dialog.ingame_time_format = function (player_name)
|
|
local time_data = mtimer.get_times(player_name).ingame_time
|
|
|
|
mtimer.show_formspec('mtimer:ingame_time_format', {
|
|
title = S('Ingame Time Format'),
|
|
show_to = player_name,
|
|
formspec = {
|
|
'field_close_on_enter[format;false]',
|
|
'field[0,0;+contentWidth,0.5;format;;'..esc(time_data.format)..']',
|
|
'container[0,1.5]',
|
|
line(0, '', S('Variable'), S('Current Value')),
|
|
line(1, '-'),
|
|
line(2, S('Hours (24h)'), '{24h}', time_data.hours_24),
|
|
line(3, S('Hours (12h)'), '{12h}', time_data.hours_12),
|
|
line(4, S('Minutes'), '{min}', time_data.minutes),
|
|
line(5, S('Ingame Timestamp'), '{its}', time_data.ingame_timestamp),
|
|
line(6, '-'),
|
|
line(7, S('Current Result'), esc(time_data.formatted), ''),
|
|
'container_end[]'
|
|
}
|
|
})
|
|
end
|
|
|
|
|
|
mtimer.dialog.real_world_time_format = function (player_name)
|
|
mtimer.dialog.real_time_universal(player_name, {
|
|
time_type = 'real_time',
|
|
formspec_name = 'mtimer:real_world_time_format',
|
|
title = S('Real-World Time Format')
|
|
})
|
|
end
|
|
|
|
|
|
mtimer.dialog.host_time_format = function (player_name)
|
|
mtimer.dialog.real_time_universal(player_name, {
|
|
time_type = 'host_time',
|
|
formspec_name = 'mtimer:host_time_format',
|
|
title = S('Host Time Format')
|
|
})
|
|
end
|
|
|
|
|
|
mtimer.dialog.session_start_time_format = function (player_name)
|
|
mtimer.dialog.real_time_universal(player_name, {
|
|
time_type = 'session_start_time',
|
|
formspec_name = 'mtimer:session_start_time_format',
|
|
title = S('Session Start Time Format')
|
|
})
|
|
end
|
|
|
|
|
|
mtimer.dialog.session_duration_format = function (player_name)
|
|
local time_data = mtimer.get_times(player_name).session_duration
|
|
|
|
mtimer.show_formspec('mtimer:session_duration_format', {
|
|
title = S('Session Duration Format'),
|
|
show_to = player_name,
|
|
formspec = {
|
|
'field_close_on_enter[format;false]',
|
|
'field[0,0;+contentWidth,0.5;format;;'..esc(time_data.format)..']',
|
|
'container[0,1.5]',
|
|
line(0, '', S('Variable'), S('Current Value')),
|
|
line(1, '-'),
|
|
line(2, S('Days'), '{days}', time_data.days),
|
|
line(3, S('Hours'), '{hours}', time_data.hours),
|
|
line(4, S('Minutes'), '{minutes}', time_data.minutes),
|
|
line(5, S('Seconds'), '{seconds}', time_data.seconds),
|
|
line(6, '-'),
|
|
line(7, S('Current Result'), esc(time_data.formatted), ''),
|
|
'container_end[]'
|
|
}
|
|
})
|
|
end
|
|
|
|
|
|
mtimer.dialog.timer_format = function (player_name)
|
|
local td = mtimer.get_timer_data(player_name)
|
|
|
|
mtimer.show_formspec('mtimer:timer_format', {
|
|
title = S('Timer Format'),
|
|
show_to = player_name,
|
|
height = 6,
|
|
width = 11,
|
|
formspec = {
|
|
'textarea[0,0;6,2.5;format;;'..esc(td.format)..']',
|
|
'container[0,3.4]',
|
|
line(0, '', S('Variable'), S('Current Value')),
|
|
line(1, '-'),
|
|
line(2, S('Real-World Date'), '{rd}', esc(td.real_world_date)),
|
|
line(3, S('In-Game Time'), '{it}', esc(td.ingame_time)),
|
|
line(4, S('Session Start Time'),'{st}', esc(td.session_start_time)),
|
|
line(5, S('Session Duration'), '{sd}', esc(td.session_duration)),
|
|
line(6, S('Host Time'), '{ht}', esc(td.host_time)),
|
|
line(7, S('Custom Timer'), '{ct}', esc(td.custom_timer)),
|
|
'container_end[]',
|
|
'container[6.25,0]',
|
|
mtimer.get_icon_button('apply', { label = S('Apply') }),
|
|
'container_end[]'
|
|
}
|
|
})
|
|
end
|