2 function build_gui(player)
3 -- here only build gui, but not try to update it with player data that is not always already available (in init_player for example)
4 local guif = player.gui.top.flw_zoom
7 guif = player.gui.top.add({type = "flow", name = "flw_zoom", direction = "horizontal", style = "zoom_flow_style"})
8 guif.add({type = "sprite-button", name = "but_zoom_zout", sprite = "sprite_zout", style = "zoom_sprite_style"})
9 guif.add({type = "sprite-button", name = "but_zoom_zin", sprite = "sprite_zin", style = "zoom_sprite_style"})
15 local function on_gui_click(event)
16 local player = game.players[event.player_index]
18 if event.element.name == "but_zoom_zin" then
19 player.zoom = player.zoom*player.mod_settings["some-zoom-zoomchangefactor"].value
21 elseif event.element.name == "but_zoom_zout" then
22 player.zoom = player.zoom/player.mod_settings["some-zoom-zoomchangefactor"].value
29 local function on_runtime_mod_setting_changed(event)
30 local player = game.players[event.player_index]
31 if player.connected then
32 player.zoom_limits = {}
33 local defzoomlimit = player.zoom_limits
34 local zoomlimitfactor = 1
36 player.zoom_limits = {
37 furthest = { distance = defzoomlimit.furthest.distance*player.mod_settings["some-zoom-zoomlimitfactor"].value, max_distance = defzoomlimit.furthest.max_distance*player.mod_settings["some-zoom-zoomlimitfactor"].value},
38 furthest_game_view = { distance = defzoomlimit.furthest.distance*player.mod_settings["some-zoom-zoomlimitfactor"].value, max_distance = defzoomlimit.furthest.max_distance*player.mod_settings["some-zoom-zoomlimitfactor"].value}
45 local function on_init()
46 for _, player in pairs(game.players) do
47 if player.connected then
48 player.zoom_limits = {}
49 local defzoomlimit = player.zoom_limits
50 local zoomlimitfactor = 1
52 player.zoom_limits = {
53 furthest = { distance = defzoomlimit.furthest.distance*player.mod_settings["some-zoom-zoomlimitfactor"].value, max_distance = defzoomlimit.furthest.max_distance*player.mod_settings["some-zoom-zoomlimitfactor"].value},
54 furthest_game_view = { distance = defzoomlimit.furthest.distance*player.mod_settings["some-zoom-zoomlimitfactor"].value, max_distance = defzoomlimit.furthest.max_distance*player.mod_settings["some-zoom-zoomlimitfactor"].value}
62 script.on_event(defines.events.on_runtime_mod_setting_changed, on_runtime_mod_setting_changed)
63 script.on_event(defines.events.on_gui_click, on_gui_click)
64 script.on_init(on_init)