z_mirror/RecipeBook
git clone https://git.raiguard.me/z_mirror/RecipeBook
05cc11f
trunk
1local flib_gui =require ( "__flib__.gui" ) 2local mod_gui =require ( "__core__.lualib.mod-gui" ) 3 4local main_gui =require ( "scripts.gui.main" ) 5 6--- @param player LuaPlayer 7local function refresh_button ( player ) 8local button_flow =mod_gui . get_button_flow ( player ) 9if button_flow . rb_toggle then 10button_flow . rb_toggle . destroy () 11end 12if player . mod_settings [ "rb-show-overhead-button" ]. value then 13button_flow . add ( { 14type ="sprite-button" , 15name ="rb_toggle" , 16style =mod_gui . button_style , 17tooltip ={ "" , { "gui.rb-title" } , " (" , { "gui.rb-toggle-instruction" } , ")" } , 18sprite ="rb_logo" , 19tags =flib_gui . format_handlers ( { [ defines . events . on_gui_click ] =main_gui . toggle } ), 20} ). style . padding = 217 22end 23end 24 25--- @param e EventData.on_player_created 26local function on_player_created ( e ) 27local player =game . get_player ( e . player_index ) 28if not player then 29return 30end 31refresh_button ( player ) 32end 33 34--- @param e EventData.on_runtime_mod_setting_changed 35local function on_runtime_mod_setting_changed ( e ) 36if e . setting ~= "rb-show-overhead-button" then 37return 38end 39local player =game . get_player ( e . player_index ) 40if not player then 41return 42end 43refresh_button ( player ) 44end 45 46local overhead_button ={} 47 48function overhead_button . on_init () 49for _ , player in pairs ( game . players ) do 50refresh_button ( player ) 51end 52end 53 54function overhead_button . on_configuration_changed () 55for _ , player in pairs ( game . players ) do 56refresh_button ( player ) 57end 58end 59 60overhead_button . events ={ 61[ defines . events . on_player_created ] =on_player_created , 62[ defines . events . on_runtime_mod_setting_changed ] =on_runtime_mod_setting_changed , 63} 64 65return overhead_button