mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-02-03 13:12:11 +02:00
made poll movable
This commit is contained in:
parent
3eacd7d7f4
commit
8c7f19de1c
@ -330,6 +330,7 @@ end
|
||||
local function draw_main_frame(left, player)
|
||||
local trusted = session.get_trusted_table()
|
||||
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
|
||||
|
||||
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_viewer_content = poll_viewer_content,
|
||||
remaining_time_label = remaining_time_label,
|
||||
poll_index = poll_index
|
||||
poll_index = poll_index,
|
||||
location = frame.location
|
||||
}
|
||||
|
||||
Gui.set_data(frame, data)
|
||||
@ -433,13 +435,13 @@ local function remove_main_frame(main_frame, left, player)
|
||||
end
|
||||
|
||||
local function toggle(event)
|
||||
local left = event.player.gui.left
|
||||
local main_frame = left[main_frame_name]
|
||||
local screen = event.player.gui.screen
|
||||
local main_frame = screen[main_frame_name]
|
||||
|
||||
if main_frame then
|
||||
remove_main_frame(main_frame, left, event.player)
|
||||
remove_main_frame(main_frame, screen, event.player)
|
||||
else
|
||||
draw_main_frame(left, event.player)
|
||||
draw_main_frame(screen, event.player)
|
||||
end
|
||||
end
|
||||
|
||||
@ -545,7 +547,7 @@ local function redraw_create_poll_content(data)
|
||||
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]
|
||||
|
||||
local edit_mode
|
||||
@ -582,8 +584,16 @@ local function draw_create_poll_frame(parent, player, previous_data)
|
||||
confirm_name = create_poll_confirm_name
|
||||
end
|
||||
|
||||
local parent_frame = Gui.get_data(parent)
|
||||
|
||||
local frame =
|
||||
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
|
||||
|
||||
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}
|
||||
|
||||
for _, p in pairs(game.connected_players) do
|
||||
local left = p.gui.left
|
||||
local left = p.gui.screen
|
||||
local frame = left[main_frame_name]
|
||||
if no_notify_players[p.index] 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)
|
||||
|
||||
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
|
||||
local data = Gui.get_data(frame)
|
||||
|
||||
@ -825,7 +835,7 @@ end
|
||||
|
||||
local function tick()
|
||||
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
|
||||
local data = Gui.get_data(frame)
|
||||
local poll = polls[data.poll_index]
|
||||
@ -851,12 +861,14 @@ Gui.on_click(
|
||||
create_poll_button_name,
|
||||
function(event)
|
||||
local player = event.player
|
||||
local left = player.gui.left
|
||||
local frame = left[create_poll_frame_name]
|
||||
local screen = player.gui.screen
|
||||
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
|
||||
remove_create_poll_frame(frame, player.index)
|
||||
else
|
||||
draw_create_poll_frame(left, player)
|
||||
draw_create_poll_frame(screen, player, nil, data)
|
||||
end
|
||||
end
|
||||
)
|
||||
@ -865,20 +877,20 @@ Gui.on_click(
|
||||
poll_view_edit_name,
|
||||
function(event)
|
||||
local player = event.player
|
||||
local left = player.gui.left
|
||||
local frame = left[create_poll_frame_name]
|
||||
local screen = player.gui.screen
|
||||
local frame = screen[create_poll_frame_name]
|
||||
|
||||
if frame and frame.valid then
|
||||
Gui.remove_data_recursively(frame)
|
||||
frame.destroy()
|
||||
end
|
||||
|
||||
local main_frame = left[main_frame_name]
|
||||
local main_frame = screen[main_frame_name]
|
||||
local frame_data = Gui.get_data(main_frame)
|
||||
local poll = polls[frame_data.poll_index]
|
||||
|
||||
poll.edit_mode = true
|
||||
draw_create_poll_frame(left, player, poll)
|
||||
draw_create_poll_frame(screen, player, poll)
|
||||
end
|
||||
)
|
||||
|
||||
@ -1001,7 +1013,7 @@ Gui.on_click(
|
||||
p.print(message)
|
||||
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
|
||||
local main_frame_data = Gui.get_data(main_frame)
|
||||
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}
|
||||
|
||||
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 main_frame and main_frame.valid then
|
||||
@ -1119,7 +1131,7 @@ Gui.on_click(
|
||||
main_frame_data.poll_index = poll_index
|
||||
update_poll_viewer(main_frame_data)
|
||||
else
|
||||
draw_main_frame(p.gui.left, p)
|
||||
draw_main_frame(p.gui.screen, p)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user