diff --git a/locale/ExpGaming-Core/GUI/ExpGaming - Left Gui.lua b/locale/ExpGaming-Core/GUI/ExpGaming - Left Gui.lua index e64a7904..06712203 100644 --- a/locale/ExpGaming-Core/GUI/ExpGaming - Left Gui.lua +++ b/locale/ExpGaming-Core/GUI/ExpGaming - Left Gui.lua @@ -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. Any changes that you may make to the code are yours but that does not make the script yours. 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----------------------------------------------------------- local add_frame = ExpGui.add_frame 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 event or type(event) ~= 'function' then error('Frame requires a draw function') end 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) 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 @@ -39,13 +28,16 @@ function draw_frame.left(player,element,update) local left = mod_gui.get_frame_flow(player) debug_write({'GUI','LEFT','UPDATE'},update) 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 frame = left.add{name=frame_data.name,type='frame',caption=frame_data.display,direction='vertical',style=mod_gui.frame_style} 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] end + -- draws the gui elements if frame then frame.clear() frame_data.event(player,frame) end end --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] for _,frame_data in pairs(frames.left) do 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 - local frame = left.add{name=frame_data.name,type='frame',caption=frame_data.display,direction='vertical',style=mod_gui.frame_style} - frame_data.event(player,frame) + -- makes the gui if its not made + ExpGui.draw_frame.left(player,{name=frame_data.name}) frame.style.visible = frame_data.vis end end end) - +--resets visabilty of guis on rank change Event.register(Event.rank_change,function(event) for _,frame_data in pairs(frames.left) do 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 end -end) ---Please Only Edit Above This Line----------------------------------------------------------- -return credits \ No newline at end of file +end) \ No newline at end of file