1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2025-02-09 13:37:02 +02:00

made poll movable

This commit is contained in:
Gerkiz 2020-04-22 21:13:42 +02:00
parent 3eacd7d7f4
commit 8c7f19de1c

View File

@ -330,6 +330,7 @@ end
local function draw_main_frame(left, player) local function draw_main_frame(left, player)
local trusted = session.get_trusted_table() local trusted = session.get_trusted_table()
local frame = left.add {type = 'frame', name = main_frame_name, caption = 'Polls', direction = 'vertical'} local frame = left.add {type = 'frame', name = main_frame_name, caption = 'Polls', direction = 'vertical'}
frame.location = {x = 1, y = 41}
--frame.style.maximal_width = 640 --frame.style.maximal_width = 640
local poll_viewer_top_flow = frame.add {type = 'table', column_count = 5} local poll_viewer_top_flow = frame.add {type = 'table', column_count = 5}
@ -363,7 +364,8 @@ local function draw_main_frame(left, player)
poll_index_label = poll_index_label, poll_index_label = poll_index_label,
poll_viewer_content = poll_viewer_content, poll_viewer_content = poll_viewer_content,
remaining_time_label = remaining_time_label, remaining_time_label = remaining_time_label,
poll_index = poll_index poll_index = poll_index,
location = frame.location
} }
Gui.set_data(frame, data) Gui.set_data(frame, data)
@ -433,13 +435,13 @@ local function remove_main_frame(main_frame, left, player)
end end
local function toggle(event) local function toggle(event)
local left = event.player.gui.left local screen = event.player.gui.screen
local main_frame = left[main_frame_name] local main_frame = screen[main_frame_name]
if main_frame then if main_frame then
remove_main_frame(main_frame, left, event.player) remove_main_frame(main_frame, screen, event.player)
else else
draw_main_frame(left, event.player) draw_main_frame(screen, event.player)
end end
end end
@ -545,7 +547,7 @@ local function redraw_create_poll_content(data)
end end
end end
local function draw_create_poll_frame(parent, player, previous_data) local function draw_create_poll_frame(parent, player, previous_data, parent_data)
previous_data = previous_data or player_create_poll_data[player.index] previous_data = previous_data or player_create_poll_data[player.index]
local edit_mode local edit_mode
@ -582,8 +584,16 @@ local function draw_create_poll_frame(parent, player, previous_data)
confirm_name = create_poll_confirm_name confirm_name = create_poll_confirm_name
end end
local parent_frame = Gui.get_data(parent)
local frame = local frame =
parent.add {type = 'frame', name = create_poll_frame_name, caption = title_text, direction = 'vertical'} parent.add {type = 'frame', name = create_poll_frame_name, caption = title_text, direction = 'vertical'}
if #polls >= 1 then
frame.location = {x = parent_data.location.x, y = parent_data.location.y + 290}
--frame.location = {x = 1, y = 335}
else
frame.location = {x = parent_data.location.x, y = parent_data.location.y + 130}
end
frame.style.maximal_width = 320 frame.style.maximal_width = 320
local scroll_pane = frame.add {type = 'scroll-pane', vertical_scroll_policy = 'always'} local scroll_pane = frame.add {type = 'scroll-pane', vertical_scroll_policy = 'always'}
@ -648,7 +658,7 @@ local function show_new_poll(poll_data)
table.concat {poll_data.created_by.name, ' has created a new Poll #', poll_data.id, ': ', poll_data.question} table.concat {poll_data.created_by.name, ' has created a new Poll #', poll_data.id, ': ', poll_data.question}
for _, p in pairs(game.connected_players) do for _, p in pairs(game.connected_players) do
local left = p.gui.left local left = p.gui.screen
local frame = left[main_frame_name] local frame = left[main_frame_name]
if no_notify_players[p.index] then if no_notify_players[p.index] then
if frame and frame.valid then if frame and frame.valid then
@ -775,7 +785,7 @@ local function vote(event)
local vote_button_count, vote_button_tooltip = update_vote(voters, answer, 1) local vote_button_count, vote_button_tooltip = update_vote(voters, answer, 1)
for _, p in pairs(game.connected_players) do for _, p in pairs(game.connected_players) do
local frame = p.gui.left[main_frame_name] local frame = p.gui.screen[main_frame_name]
if frame and frame.valid then if frame and frame.valid then
local data = Gui.get_data(frame) local data = Gui.get_data(frame)
@ -825,7 +835,7 @@ end
local function tick() local function tick()
for _, p in pairs(game.connected_players) do for _, p in pairs(game.connected_players) do
local frame = p.gui.left[main_frame_name] local frame = p.gui.screen[main_frame_name]
if frame and frame.valid then if frame and frame.valid then
local data = Gui.get_data(frame) local data = Gui.get_data(frame)
local poll = polls[data.poll_index] local poll = polls[data.poll_index]
@ -851,12 +861,14 @@ Gui.on_click(
create_poll_button_name, create_poll_button_name,
function(event) function(event)
local player = event.player local player = event.player
local left = player.gui.left local screen = player.gui.screen
local frame = left[create_poll_frame_name] local data = screen[main_frame_name]
local frame = screen[create_poll_frame_name]
local parent = Gui.get_data(data)
if frame and frame.valid then if frame and frame.valid then
remove_create_poll_frame(frame, player.index) remove_create_poll_frame(frame, player.index)
else else
draw_create_poll_frame(left, player) draw_create_poll_frame(screen, player, nil, data)
end end
end end
) )
@ -865,20 +877,20 @@ Gui.on_click(
poll_view_edit_name, poll_view_edit_name,
function(event) function(event)
local player = event.player local player = event.player
local left = player.gui.left local screen = player.gui.screen
local frame = left[create_poll_frame_name] local frame = screen[create_poll_frame_name]
if frame and frame.valid then if frame and frame.valid then
Gui.remove_data_recursively(frame) Gui.remove_data_recursively(frame)
frame.destroy() frame.destroy()
end end
local main_frame = left[main_frame_name] local main_frame = screen[main_frame_name]
local frame_data = Gui.get_data(main_frame) local frame_data = Gui.get_data(main_frame)
local poll = polls[frame_data.poll_index] local poll = polls[frame_data.poll_index]
poll.edit_mode = true poll.edit_mode = true
draw_create_poll_frame(left, player, poll) draw_create_poll_frame(screen, player, poll)
end end
) )
@ -1001,7 +1013,7 @@ Gui.on_click(
p.print(message) p.print(message)
end end
local main_frame = p.gui.left[main_frame_name] local main_frame = p.gui.screen[main_frame_name]
if main_frame and main_frame.valid then if main_frame and main_frame.valid then
local main_frame_data = Gui.get_data(main_frame) local main_frame_data = Gui.get_data(main_frame)
local poll_index = main_frame_data.poll_index local poll_index = main_frame_data.poll_index
@ -1105,7 +1117,7 @@ Gui.on_click(
local message = table.concat {player.name, ' has edited Poll #', poll.id, ': ', poll.question} local message = table.concat {player.name, ' has edited Poll #', poll.id, ': ', poll.question}
for _, p in pairs(game.connected_players) do for _, p in pairs(game.connected_players) do
local main_frame = p.gui.left[main_frame_name] local main_frame = p.gui.screen[main_frame_name]
if no_notify_players[p.index] then if no_notify_players[p.index] then
if main_frame and main_frame.valid then if main_frame and main_frame.valid then
@ -1119,7 +1131,7 @@ Gui.on_click(
main_frame_data.poll_index = poll_index main_frame_data.poll_index = poll_index
update_poll_viewer(main_frame_data) update_poll_viewer(main_frame_data)
else else
draw_main_frame(p.gui.left, p) draw_main_frame(p.gui.screen, p)
end end
end end
end end