z_mirror/EditorExtensions
git clone https://git.raiguard.me/z_mirror/EditorExtensions
e4c5e75
1.14
1local util =require ( "__EditorExtensions__/scripts/util" ) 2 3local editor_gui_width =474 4 5--- @param e EventData.CustomInputEvent|EventData.on_lua_shortcut 6local function on_toggle_editor ( e ) 7local input =e . prototype_name or e . input_name 8if input ~= "ee-toggle-map-editor" then 9return 10end 11 12local player =game . get_player ( e . player_index ) 13if not player then 14return 15end 16 17local group =player . permission_group 18if not player . admin or ( group and not group . allows_action ( defines . input_action . toggle_map_editor )) then 19player . ( { "message.ee-cannot-use-map-editor" } ) 20return 21end 22 23player . toggle_map_editor () 24end 25 26--- @param e EventData.on_player_toggled_map_editor 27local function on_player_toggled_map_editor ( e ) 28local player =game . get_player ( e . player_index ) 29if not player then 30return 31end 32 33player . set_shortcut_toggled ( "ee-toggle-map-editor" , player . controller_type == defines . controllers . editor ) 34 35local in_editor =player . controller_type == defines . controllers . editor 36local margin =in_editor and editor_gui_width or 0 37player . gui . top . style . left_margin =margin 38player . gui . left . style . left_margin =margin 39 40if global . editor_toggled or not game . tick_paused then 41return 42end 43global . editor_toggled =true 44if game . tick_paused and settings . global [ "ee-prevent-initial-pause" ]. value then 45game . tick_paused =false 46end 47end 48 49--- @param e EventData.on_player_created 50local function on_player_created ( e ) 51local player =game . get_player ( e . player_index ) 52if not player then 53return 54end 55 56util . player_can_use_editor ( player ) 57 58if player . mod_settings [ "ee-auto-alt-mode" ]. value then 59local game_view_settings =player . game_view_settings 60game_view_settings . show_entity_info =true 61player . game_view_settings =game_view_settings 62end 63 64if not util . in_debug_world () and not util . in_testing_scenario () then 65player . ( { "message.ee-welcome" } ) 66end 67end 68 69--- @param e EventData.on_permission_group_edited 70local function on_permission_group_edited ( e ) 71for _ , player in pairs ( e . group . players ) do 72util . player_can_use_editor ( player ) 73end 74end 75 76local editor ={} 77 78editor . on_init =function () 79for player_index in pairs ( game . players ) do 80--- @cast player_index uint 81on_player_created ( { player_index =player_index } ) 82end 83end 84 85editor . on_configuration_changed =function () 86for _ , player in pairs ( game . players ) do 87util . player_can_use_editor ( player ) 88end 89end 90 91editor . events ={ 92[ defines . events . on_lua_shortcut ] =on_toggle_editor , 93[ defines . events . on_permission_group_edited ] =on_permission_group_edited , 94[ defines . events . on_player_created ] =on_player_created , 95[ defines . events . on_player_toggled_map_editor ] =on_player_toggled_map_editor , 96[ "ee-toggle-map-editor" ] =on_toggle_editor , 97} 98 99return editor