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