left gui clean

This commit is contained in:
Cooldude2606
2017-10-15 22:01:44 +01:00
parent 9b6ec9d1a7
commit 2c0aec9bef

View File

@@ -5,18 +5,7 @@ This file can be used with permission but this and the credit below must remain
Contact a member of management on our discord to seek permission to use our code. Contact a member of management on our discord to seek permission to use our code.
Any changes that you may make to the code are yours but that does not make the script yours. Any changes that you may make to the code are yours but that does not make the script yours.
Discord: https://discord.gg/XSsBV6b Discord: https://discord.gg/XSsBV6b
The credit below may be used by another script do not remove.
]] ]]
local credits = {{
name='ExpGaming - Left Gui',
owner='Explosive Gaming',
dev='Cooldude2606',
description='A simple way to add toggle menus to the left',
factorio_version='0.15.23',
show=false
}}
local function credit_loop(reg) for _,cred in pairs(reg) do table.insert(credits,cred) end end
--Please Only Edit Below This Line----------------------------------------------------------- --Please Only Edit Below This Line-----------------------------------------------------------
local add_frame = ExpGui.add_frame local add_frame = ExpGui.add_frame
local frames = ExpGui.frames local frames = ExpGui.frames
@@ -28,7 +17,7 @@ function add_frame.left(name,default_display,default_tooltip,vis,event)
if not name then error('Frame requires a name') end if not name then error('Frame requires a name') end
if not event or type(event) ~= 'function' then error('Frame requires a draw function') end if not event or type(event) ~= 'function' then error('Frame requires a draw function') end
local vis = vis or false local vis = vis or false
table.insert(frames.left,{name=name,display=default_display,event=event,vis=vis}) frames.left[name] = {name=name,display=default_display,event=event,vis=vis}
ExpGui.toolbar.add_button(name,default_display,default_tooltip,draw_frame.left) ExpGui.toolbar.add_button(name,default_display,default_tooltip,draw_frame.left)
end end
--draw the left GUI for the player; called via script, only call manually when update is true and element is the name of the GUI --draw the left GUI for the player; called via script, only call manually when update is true and element is the name of the GUI
@@ -39,13 +28,16 @@ function draw_frame.left(player,element,update)
local left = mod_gui.get_frame_flow(player) local left = mod_gui.get_frame_flow(player)
debug_write({'GUI','LEFT','UPDATE'},update) debug_write({'GUI','LEFT','UPDATE'},update)
if not update then if not update then
for _,frame in pairs(frames.left) do if element.name == frame.name then frame_data = frame break end end -- either toggels visabilty or makes the gui
frame_data = frames.left[element.name]
if left[frame_data.name] then ExpGui.toggle_visible(left[frame_data.name]) return end if left[frame_data.name] then ExpGui.toggle_visible(left[frame_data.name]) return end
frame = left.add{name=frame_data.name,type='frame',caption=frame_data.display,direction='vertical',style=mod_gui.frame_style} frame = left.add{name=frame_data.name,type='frame',caption=frame_data.display,direction='vertical',style=mod_gui.frame_style}
else else
for _,frame in pairs(frames.left) do if element == frame.name then frame_data = frame break end end -- only clears the gui
frame_data = frames.left[element]
frame = left[frame_data.name] frame = left[frame_data.name]
end end
-- draws the gui elements
if frame then frame.clear() frame_data.event(player,frame) end if frame then frame.clear() frame_data.event(player,frame) end
end end
--used to load all left GUIs --used to load all left GUIs
@@ -53,20 +45,20 @@ Event.register(defines.events.on_player_joined_game,function(event)
local player = game.players[event.player_index] local player = game.players[event.player_index]
for _,frame_data in pairs(frames.left) do for _,frame_data in pairs(frames.left) do
local left = mod_gui.get_frame_flow(player) local left = mod_gui.get_frame_flow(player)
if left[frame_data.name] then left[frame_data.name].style.visible = frame_data.vis ExpGui.draw_frame.left(player,frame_data.name,true) if left[frame_data.name] then
-- if it has been made already then it updates it
ExpGui.draw_frame.left(player,frame_data.name,true)
else else
local frame = left.add{name=frame_data.name,type='frame',caption=frame_data.display,direction='vertical',style=mod_gui.frame_style} -- makes the gui if its not made
frame_data.event(player,frame) ExpGui.draw_frame.left(player,{name=frame_data.name})
frame.style.visible = frame_data.vis frame.style.visible = frame_data.vis
end end
end end
end) end)
--resets visabilty of guis on rank change
Event.register(Event.rank_change,function(event) Event.register(Event.rank_change,function(event)
for _,frame_data in pairs(frames.left) do for _,frame_data in pairs(frames.left) do
local left = mod_gui.get_frame_flow(event.player) local left = mod_gui.get_frame_flow(event.player)
if left[frame_data.name] then left[frame_data.name].style.visible = frame_data.vis end if left[frame_data.name] then left[frame_data.name].style.visible = frame_data.vis end
end end
end) end)
--Please Only Edit Above This Line-----------------------------------------------------------
return credits