z_mirror/EditorExtensions
git clone https://git.raiguard.me/z_mirror/EditorExtensions
e978e1a
hidden-items
1local util =require ( "__EditorExtensions__/scripts/util" ) 2 3--- @param surface LuaSurface 4local function setup_surface ( surface ) 5surface . generate_with_lab_tiles =true 6surface . show_clouds =false 7surface . freeze_daytime =true 8surface . daytime =0 9surface . clear ( true ) 10end 11 12--- @param force LuaForce 13local function setup_force ( force ) 14force . max_successful_attempts_per_tick_per_construction_queue =30 15force . max_failed_attempts_per_tick_per_construction_queue =10 16force . research_all_technologies () 17if util . in_testing_scenario () then 18force . rechart () 19end 20end 21 22--- @param player LuaPlayer 23local function setup_player ( player ) 24player . cheat_mode =true 25local start_in_editor =player . mod_settings [ "ee-start-in-editor" ] 26if start_in_editor and start_in_editor . value then 27player . toggle_map_editor () 28end 29if util . in_debug_world () then 30local items =remote . call ( "freeplay" , "get_created_items" ) 31remote . call ( "freeplay" , "set_created_items" , {} ) 32remote . call ( "freeplay" , "set_respawn_items" , {} ) 33for name , count in pairs ( items ) do 34player . remove_item ( { name =name , count =count } ) 35end 36end 37end 38 39--- @param e EventData.on_force_created 40local function on_force_created ( e ) 41if not util . in_debug_world () and not util . in_testing_scenario () then 42return 43end 44setup_force ( e . force ) 45end 46 47--- @param e EventData.on_player_created 48local function on_player_created ( e ) 49if not util . in_debug_world () and not util . in_testing_scenario () then 50return 51end 52local player =game . get_player ( e . player_index ) 53if player then 54setup_player ( player ) 55end 56end 57 58--- @param e EventData.on_surface_cleared 59local function on_surface_cleared ( e ) 60if not util . in_debug_world () then 61return 62end 63local surface =game . get_surface ( e . surface_index ) 64if not surface then 65return 66end 67surface . create_entity ( { 68name ="ee-infinity-accumulator-primary-output" , 69position ={ - 24 , - 24 } , 70force =game . forces . player , 71create_build_effect_smoke =false , 72} ) 73surface . create_entity ( { 74name ="ee-super-substation" , 75position ={ - 22 , - 24 } , 76force =game . forces . player , 77create_build_effect_smoke =false , 78} ) 79end 80 81local function on_init () 82if not util . in_debug_world () and not util . in_testing_scenario () then 83return 84end 85for _ , force in pairs ( game . forces ) do 86setup_force ( force ) 87end 88for _ , player in pairs ( game . players ) do 89setup_player ( player ) 90end 91 92if util . in_debug_world () then 93local nauvis =game . get_surface ( "nauvis" ) 94if nauvis then 95setup_surface ( nauvis ) 96end 97end 98end 99 100local debug_world ={} 101 102debug_world . on_init =on_init 103 104debug_world . events ={ 105[ defines . events . on_force_created ] =on_force_created , 106[ defines . events . on_player_created ] =on_player_created , 107[ defines . events . on_surface_cleared ] =on_surface_cleared , 108} 109 110return debug_world