mtimer/system/formspec/formspec_creation.lua
2019-02-21 21:07:35 +01:00

198 lines
6.3 KiB
Lua

local m = mtimer
local S = m.translator
local build_frame = m.build_frame
mtimer.show_formspec.main_menu = function (player_name)
minetest.show_formspec(player_name, 'mtimer:main_menu', [[
size[4,10.25]
label[0,-0.125;]]..S('mTimer Configuration')..[[]
button[0,0.5;4,1;set_visibility;]]..S('Visibility')..[[]
button[0,1.5;4,1;set_position;]]..S('Position')..[[]
button[0,2.5;4,1;set_color;]]..S('Color')..[[]
button[0,3.5;4,1;timezone_offset;]]..S('Timezone Offset')..[[]
button[0,4.5;4,1;ingame_time_format;]]..S('Ingame Time Format')..[[]
button[0,5.5;4,1;real_world_time_format;]]..S('Real-World Time Format')..[[]
button[0,6.5;4,1;session_start_time_format;]]..S('Session Start Time Format')..[[]
button[0,7.5;4,1;session_duration_format;]]..S('Session Duration Format')..[[]
button[0,8.5;4,1;timer_text;]]..S('Set Timer Text')..[[]
button_exit[0,9.5;4,1;exit;]]..S('Exit')..[[]
]])
end
mtimer.show_formspec.set_visibility = function (player_name)
minetest.show_formspec(player_name, 'mtimer:set_visibility',
build_frame(6, 2.25, S('Visibility'))..[[
button[0,0.5;3,1;visible;]]..S('Visible')..[[]
button[3,0.5;3,1;invisible;]]..S('Invisible')..[[]
]])
end
mtimer.show_formspec.set_position = function (player_name)
minetest.show_formspec(player_name, 'mtimer:set_position',
build_frame(8, 6.2, S('Position'))..[[
image_button[0,0.5;8,4.5 ;mtimer_positions_orientation.png;pos_xx;;;false]
image_button[0,0.5;2.67,1.5;mtimer_transparent.png;pos_tl;;;false]
image_button[2.67,0.5;2.67,1.5;mtimer_transparent.png;pos_tc;;;false]
image_button[5.34,0.5;2.67,1.5;mtimer_transparent.png;pos_tr;;;false]
image_button[0,2;2.67,1.5;mtimer_transparent.png;pos_ml;;;false]
image_button[2.67,2;2.67,1.5;mtimer_transparent.png;pos_mc;;;false]
image_button[5.34,2;2.67,1.5;mtimer_transparent.png;pos_mr;;;false]
image_button[0,3.5;2.67,1.5;mtimer_transparent.png;pos_bl;;;false]
image_button[2.67,3.5;2.67,1.5;mtimer_transparent.png;pos_bc;;;false]
image_button[5.34,3.5;2.67,1.5;mtimer_transparent.png;pos_br;;;false]
label[0,5;]]..S('Click the position you want to place the timer at.')..[[]
]])
end
mtimer.show_formspec.set_color = function (player_name)
local player = minetest.get_player_by_name(player_name)
local color = player:get_meta():get_string(m.meta.color.key)
local hexcolor = table.concat({
'#',
minetest.colorize('#ce5c00', 'rr'),
minetest.colorize('#4e9a06', 'gg'),
minetest.colorize('#729fcf', 'bb'),
'AA'
})
minetest.show_formspec(player_name, 'mtimer:set_color',
build_frame(6, 2.7, S('Color'))..[[
field_close_on_enter[color;false]
field[0.25,0.75;3,1;color;;]]..color..[[]
box[3,0.55;0.65,0.65;]]..color..[[]
label[-0.05,1.45;]]..S('Use `@1` format only!', hexcolor)..[[]
]])
end
mtimer.show_formspec.timezone_offset = function (player_name)
local time_data = mtimer.get_times(player_name).real_time
local format_information = table.concat({
S('30 minutes @= 0.5, 60 minutes @= 1'),
S('“Arbitrary” values are possible.')
}, '\n')
local time_information = table.concat({
S('Server Time: @1', time_data.times.server_time),
S('Local Time: @1', time_data.times.local_time)
}, '\n')
minetest.show_formspec(player_name, 'mtimer:timezone_offset',
build_frame(7, 3.125, S('Timezone Offset'))..[[
field_close_on_enter[offset;false]
field[0.25,0.75;3,1;offset;;]]..time_data.times.offset..[[]
label[3,0.425;]]..format_information..[[]
label[0,1.45;]]..time_information..[[]
]])
end
mtimer.show_formspec.ingame_time_format = function (player_name)
local time_data = mtimer.get_times(player_name).ingame_time
minetest.show_formspec(player_name, 'mtimer:ingame_time_format',
build_frame(7, 4.9, S('Ingame Time Format'))..[[
field_close_on_enter[format;false]
field[0.25,0.75;7,1;format;;]]..time_data.format..[[]
container[0,1.425]
label[2.8,0;]]..S('Variable')..[[]
label[4.25,0;]]..S('Current value')..[[]
box[0,0.45;6.75,0.02;#ffffff]
label[0,0.5;]]..S('Hours (24h)')..[[]
label[2.8,0.5;{24h}]
label[4.25,0.5;]]..time_data.hours_24..[[]
label[0,0.9;]]..S('Hours (12h)')..[[]
label[2.8,0.9;{12h}]
label[4.25,0.9;]]..time_data.hours_12..[[]
label[0,1.3;]]..S('Minutes')..[[]
label[2.8,1.3;{min}]
label[4.25,1.3;]]..time_data.minutes..[[]
label[0,1.7;]]..S('Ingame Timestamp')..[[]
label[2.8,1.7;{its}]
label[4.25,1.7;]]..time_data.ingame_timestamp..[[]
box[0,2.2;6.75,0.02;#ffffff]
label[0,2.25;]]..S('Current Result')..[[]
label[2.8,2.25;]]..time_data.formatted..[[]
container_end[]
]])
end
mtimer.show_formspec.real_world_time_format = function (player_name)
mtimer.show_formspec.real_time_universal(player_name, {
time_type = 'real_time',
formspec_name = 'mtimer:real_world_time_format',
title = S('Real-World Time Format')
})
end
mtimer.show_formspec.session_start_time_format = function (player_name)
mtimer.show_formspec.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.show_formspec.session_duration_format = function (player_name)
local time_data = mtimer.get_times(player_name).session_duration
minetest.show_formspec(player_name, 'mtimer:session_duration_format',
build_frame(7, 5, S('Session Duration Format'))..[[
field_close_on_enter[format;false]
field[0.25,0.75;7,1;format;;]]..time_data.format..[[]
container[0,1.425]
label[2.5,0;]]..S('Variable')..[[]
label[4,0;]]..S('Current value')..[[]
box[0,0.45;6.75,0.02;#ffffff]
label[0,0.5;]]..S('Days')..[[]
label[2.5,0.5;{days}]
label[4,0.5;]]..time_data.days..[[]
label[0,0.9;]]..S('Hours')..[[]
label[2.5,0.9;{hours}]
label[4,0.9;]]..time_data.hours..[[]
label[0,1.3;]]..S('Minutes')..[[]
label[2.5,1.3;{minutes}]
label[4,1.3;]]..time_data.minutes..[[]
label[0,1.7;]]..S('Seconds')..[[]
label[2.5,1.7;{seconds}]
label[4,1.7;]]..time_data.seconds..[[]
box[0,2.2;6.75,0.02;#ffffff]
label[0,2.25;]]..S('Current Result')..[[]
label[2.5,2.25;]]..time_data.formatted..[[]
container_end[]
]])
end