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