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"})
14 function setplayerzoomlimit(player)
15 if player.controller_type == defines.controllers.character then
16 player.zoom_limits = {}
17 local defzoomlimit = player.zoom_limits
19 player.zoom_limits = {
20 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},
21 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}
29 local function on_gui_click(event)
30 local player = game.players[event.player_index]
32 if event.element.name == "but_zoom_zin" then
33 setplayerzoomlimit(player)
34 player.zoom = player.zoom/player.mod_settings["some-zoom-zoomchangefactor"].value
36 elseif event.element.name == "but_zoom_zout" then
37 setplayerzoomlimit(player)
38 player.zoom = player.zoom*player.mod_settings["some-zoom-zoomchangefactor"].value
45 local function on_runtime_mod_setting_changed(event)
46 local player = game.players[event.player_index]
47 setplayerzoomlimit(player)
52 local function on_init()
53 for _, player in pairs(game.players) do
54 setplayerzoomlimit(player)
59 script.on_event(defines.events.on_runtime_mod_setting_changed, on_runtime_mod_setting_changed)
60 script.on_event(defines.events.on_gui_click, on_gui_click)
61 script.on_init(on_init)