1
0
mirror of https://github.com/ComfyFactory/ComfyFactorio.git synced 2024-12-24 22:14:44 +02:00
ComfyFactorio/.luacheckrc

2312 lines
89 KiB
Plaintext
Raw Permalink Normal View History

-------------------------------------------------------------------------------
--[LICENSE]--
-------------------------------------------------------------------------------
-- .luacheckrc
-- This file is free and unencumbered software released into the public domain.
--
-- Anyone is free to copy, modify, publish, use, compile, sell, or
-- distribute this file, either in source code form or as a compiled
-- binary, for any purpose, commercial or non-commercial, and by any
-- means.
--
-- In jurisdictions that recognize copyright laws, the author or authors
-- of this file dedicate any and all copyright interest in the
-- software to the public domain. We make this dedication for the benefit
-- of the public at large and to the detriment of our heirs and
-- successors. We intend this dedication to be an overt act of
-- relinquishment in perpetuity of all present and future rights to this
-- software under copyright law.
--
-- THE FILE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-- IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-- OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-- ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-- OTHER DEALINGS IN THE SOFTWARE.
--
-- For more information, please refer to <http://unlicense.org/>
-- ]]
-- Current Factorio Version 0.17.0, luacheck version 0.23.0
-------------------------------------------------------------------------------
--[Set Defaults]--
-------------------------------------------------------------------------------
2023-06-17 23:32:35 +02:00
local LINE_LENGTH = false -- It is 2017 limits on length are a waste
2024-10-25 22:32:25 +02:00
local IGNORE = { '21./%w+_$', '21./^_%w+$', '213/[ijk]', '213/index', '213/key', '58[1-2]' }
2023-06-17 23:32:35 +02:00
local NOT_GLOBALS = { 'coroutine', 'io', 'socket', 'dofile', 'loadfile' } -- These globals are not available to the factorio API
local STD_CONTROL = 'lua52c+factorio+factorio_control+stdlib+factorio_defines'
local STD_DATA = 'lua52c+factorio+factorio_data+stdlib+stdlib_data+factorio_defines'
-- In a perfect world these would be STD_DATA and STD_CONTROL (mostly)
local STD_BASE_DATA = 'lua52c+factorio+factorio_data+factorio_defines+factorio_base_data'
local STD_BASE_CONTROL = 'lua52c+factorio+factorio_control+factorio_defines+factorio_base_control'
-------------------------------------------------------------------------------
--[Assume Factorio Control stage as default]--
-------------------------------------------------------------------------------
std = STD_CONTROL
2022-03-01 20:17:53 +02:00
globals = {
'print',
'_DEBUG',
2023-06-17 23:34:28 +02:00
'_PROFILE',
2022-03-01 20:17:53 +02:00
'_CHEATS',
'_DUMP_ENV',
'ServerCommands',
'Debug',
'_LIFECYCLE',
'_STAGE',
'is_loaded',
2023-06-17 23:32:35 +02:00
'is_loaded_bool',
2022-03-01 20:17:53 +02:00
'is_game_modded',
2024-11-10 23:10:11 +02:00
'normalize_path',
2024-10-14 23:46:34 +02:00
'has_space_age',
2022-04-05 19:28:08 +02:00
'require'
2022-03-01 20:17:53 +02:00
}
max_line_length = LINE_LENGTH
not_globals = NOT_GLOBALS
ignore = IGNORE
quiet = 1 -- pass -q option
max_cyclomatic_complexity = 75
codes = true
--List of files and directories to exclude
exclude_files = {
--Ignore special folders
'**/.*/*', --Ignore if path starts with .
'**/stdlib/vendor/',
'**/*WIP/',
--Ignore development mods
'**/combat-tester/',
'**/test-maker/',
2024-10-25 22:32:25 +02:00
'**/trailer/',
'**/.vscode/'
}
-------------------------------------------------------------------------------
--[Mod Prototypes]--
-------------------------------------------------------------------------------
--Set default prototype files
files['**/data.lua'].std = STD_DATA
files['**/data-updates.lua'].std = STD_DATA
files['**/data-final-fixes.lua'].std = STD_DATA
files['**/settings.lua'].std = STD_DATA
files['**/settings-updates.lua'].std = STD_DATA
files['**/settings-final-fixes.lua'].std = STD_DATA
files['**/prototypes/'].std = STD_DATA
files['**/settings/'].std = STD_DATA
-------------------------------------------------------------------------------
--[Base]--
-------------------------------------------------------------------------------
--Find and replace ignores *.cfg, migrations, *.txt, control.lua, *.json, trailer, scenarios, campaigns, *.glsl
local base_scenarios = {
std = STD_BASE_CONTROL .. '+factorio_base_scenarios+factorio_base_story',
--ignore = {'212/event', '111', '112', '113', '211', '212', '213', '311', '411', '412', '421', '422', '423', '431', '432', '512'}
2023-06-17 23:32:35 +02:00
ignore = { '...' }
}
files['**/base/scenarios/'] = base_scenarios
files['**/base/tutorials/'] = base_scenarios
files['**/base/campaigns/'] = base_scenarios
files['**/wip-scenario/'] = base_scenarios
2023-06-17 23:32:35 +02:00
files['**/base/migrations/'] = { std = STD_BASE_CONTROL }
2023-06-17 23:32:35 +02:00
files['**/core/lualib/'] = { std = STD_BASE_CONTROL }
files['**/core/lualib/util.lua'] = { globals = { 'util', 'table' }, ignore = { '432/object' } }
files['**/core/lualib/silo-script.lua'] = { globals = { 'silo_script' }, ignore = { '4../player' } }
files['**/core/lualib/production-score.lua'] = {
globals = { 'production_score', 'get_price_recursive' },
ignore = { '4../player' }
}
files['**/core/lualib/story*'] = { std = '+factorio_base_story', ignore = { '42./k', '42./filter' } }
files['**/core/lualib/mod-gui.lua'] = { globals = { 'mod_gui' } }
files['**/core/lualib/camera.lua'] = { globals = { 'camera' } }
files['**/core/lualib/builder.lua'] = { globals = { 'Builder', 'builder', 'action', 'down', 'right' } }
2023-06-17 23:32:35 +02:00
files['**/core/lualib/bonus-gui-ordering/'] = { std = STD_BASE_DATA }
files['**/core/lualib/dataloader.lua'] = { globals = { 'data' } }
files['**/core/lualib/circuit-connector-*'] = { std = STD_BASE_DATA .. '+factorio_circuit_connector_generated' }
files['**/core/lualib/bonus-gui-ordering.lua'] = { globals = { 'bonus_gui_ordering' } }
2023-06-17 23:32:35 +02:00
files['**/base/prototypes/'] = { std = STD_BASE_DATA }
files['**/core/prototypes/'] = { std = STD_BASE_DATA }
files['**/core/prototypes/noise-programs.lua'] = { ignore = { '212/x', '212/y', '212/tile', '212/map' } }
--(( stdlib ))--
local stdlib_control = {
std = 'lua52c+factorio+factorio_control+stdlib+factorio_defines',
max_line_length = LINE_LENGTH
}
local stdlib_data = {
std = 'lua52c+factorio+factorio_data+stdlib+factorio_defines',
max_line_length = LINE_LENGTH
}
-- Assume control stage for stdlib
files['**/stdlib/'] = stdlib_control
-- Assume generic content for stdlib utils
files['**/stdlib/utils/**'].std = 'lua52c+stdlib'
-- STDLIB data files
files['**/stdlib/data/'] = stdlib_data
-- STDLIB Busted Spec
files['**/spec/**'] = {
2023-06-17 23:32:35 +02:00
globals = { 'serpent', 'log', 'SLOG', 'RESET' },
std = 'lua52c+busted+factorio_defines+factorio_control+stdlib'
} --))
--(( Factorio ))--
stds.factorio = {
--Set the read only variables
read_globals = {
-- @log@: Gives writing access to Factorio's logger instance.
2022-03-01 20:17:53 +02:00
'log',
-- @serpent@: Lua serializer and pretty printer. (https://github.com/pkulchenko/serpent)
2022-03-01 20:17:53 +02:00
'serpent',
-- @table_size@: Returns the number of elements inside an LUA table
2022-03-01 20:17:53 +02:00
'table_size',
util = {
fields = {
2022-03-01 20:17:53 +02:00
'by_pixel',
'distance',
'findfirstentity',
'positiontostr',
'formattime',
'moveposition',
'oppositedirection',
'ismoduleavailable',
'multiplystripes',
'format_number',
'increment',
'color',
'conditional_return',
'add_shift',
'merge',
'premul_color',
'encode',
'decode',
'insert_safe',
table = {
fields = {
2022-03-01 20:17:53 +02:00
'compare',
'deepcopy'
}
}
}
},
table = {
fields = {
2022-03-01 20:17:53 +02:00
'compare',
'deepcopy'
}
}
}
}
stds.factorio_control = {
read_globals = {
-- @commands@:
commands = {
fields = {
2022-03-01 20:17:53 +02:00
'commands',
'game_commands',
2024-06-04 23:19:47 +02:00
'remove_command',
'add_command'
},
2022-03-01 20:17:53 +02:00
other_fields = false
},
-- @settings@:
settings = {
fields = {
2022-03-01 20:17:53 +02:00
'get_player_settings',
2023-06-17 23:32:35 +02:00
startup = { read_only = false, other_fields = true },
global = { read_only = false, other_fields = true },
player = { read_only = false, other_fields = true }
2022-03-01 20:17:53 +02:00
}
},
-- @script@: Provides an interface for registering event handlers.
-- (http://lua-api.factorio.com/latest/LuaBootstrap.html)
script = {
fields = {
2022-03-01 20:17:53 +02:00
'on_nth_tick',
'on_event',
'on_init',
'on_load',
2024-10-25 22:32:25 +02:00
'register_on_entity_destroyed',
'register_on_object_destroyed',
2022-03-01 20:17:53 +02:00
'on_configuration_changed',
'raise_event',
'get_event_handler',
'mod_name',
'get_event_order',
'generate_event_name',
2024-10-21 15:43:41 +02:00
'active_mods'
},
2022-03-01 20:17:53 +02:00
other_fields = false
},
-- @remote@: Allows inter-mod communication by providing a repository of interfaces that is shared by all mods.
-- (http://lua-api.factorio.com/latest/LuaRemote.html)
remote = {
fields = {
2023-06-17 23:32:35 +02:00
interfaces = { read_only = false, other_fields = true },
2022-03-01 20:17:53 +02:00
'add_interface',
'remove_interface',
'call'
},
read_only = true,
2022-03-01 20:17:53 +02:00
other_fields = false
},
rcon = {
2023-06-17 23:32:35 +02:00
fields = { 'print' }
},
rendering = {
other_fields = false,
read_only = true,
fields = {
2024-10-25 22:32:25 +02:00
'get_all_objects',
2021-03-24 21:14:55 +02:00
'set_visible',
'draw_line',
'draw_text',
'draw_circle',
'draw_rectangle',
'draw_arc',
'draw_polygon',
'draw_sprite',
'draw_light',
'destroy',
'is_font_valid',
'is_valid',
'get_all_ids',
'clear',
'get_type',
'get_surface',
'get_time_to_live',
'set_time_to_live',
'get_forces',
'set_forces',
'get_players',
'set_players',
'get_color',
'set_color',
'get_width',
'set_width',
'get_from',
'set_from',
'get_to',
'set_to',
'get_gap_amount',
'set_gap_amount',
'get_gap_length',
'set_gap_length',
'get_target',
'set_target',
'get_orientation',
'set_orientation',
'get_scale',
'set_scale',
'get_text',
'set_text',
'get_font',
'set_font',
'get_alignment',
'set_alignment',
'get_scale_with_zoom',
'set_scale_with_zoom',
2024-10-25 22:32:25 +02:00
'get_object_by_id',
'get_filled',
'set_filled',
'get_radius',
'set_radius',
'get_left_top',
'set_left_top',
'get_right_bottom',
'set_right_bottom',
'get_max_radius',
'set_max_radius',
'get_min_radius',
'set_min_radius',
'get_start_angle',
'set_start_angle',
'get_angle',
'set_angle',
'get_vertices',
'set_vertices',
'get_sprite',
'set_sprite',
'get_x_scale',
'set_x_scale',
'get_y_scale',
'set_y_scale',
'get_render_layer',
'set_render_layer',
'get_orientation_target',
'set_orientation_target',
'get_oriented_offset',
'set_oriented_offset',
'get_intensity',
'set_intensity',
'get_minimum_darkness',
'set_minimum_darkness'
}
},
-- @game@: Main object through which most of the API is accessed.
-- It is, however, not available inside handlers registered with @script.on_load@.
-- (http://lua-api.factorio.com/latest/LuaGameScript.html)
2022-03-01 20:17:53 +02:00
game = {
other_fields = false,
read_only = false,
fields = {
2024-11-10 13:43:36 +02:00
'set_win_ending_info',
2022-03-01 20:17:53 +02:00
'disable_tutorial_triggers',
'auto_save',
'ban_player',
'check_consistency',
'check_prototype_translations',
'count_pipe_groups',
'create_force',
'create_profiler',
'create_random_generator',
2023-02-12 12:23:44 +02:00
'create_inventory',
2022-03-01 20:17:53 +02:00
'create_surface',
'delete_surface',
'desync_players',
'direction_to_string',
'disable_replay',
'disable_tips_and_tricks',
'draw_resource_selection',
'force_crc',
'get_active_entities_count',
'get_entity_by_tag',
'get_map_exchange_string',
'get_player',
'get_surface',
'help',
'is_demo',
'is_multiplayer',
'is_valid_sound_path',
'json_to_table',
'kick_player',
'merge_forces',
'get_pollution_statistics',
2022-03-01 20:17:53 +02:00
'mute_player',
'play_sound',
'print',
'print_stack_size',
'purge_player',
'regenerate_entity',
'reload_mods',
'reload_script',
'remove_offline_players',
'remove_path',
'save_atlas',
'server_save',
'set_game_state',
'reset_time_played',
2022-09-30 22:18:31 +02:00
'reset_game_state',
2022-03-01 20:17:53 +02:00
'show_message_dialog',
'table_to_json',
'encode_string',
'decode_string',
'take_screenshot',
'take_technology_screenshot',
'unban_player',
'unmute_player',
'write_file',
2023-06-17 23:32:35 +02:00
active_mods = { read_only = true, other_fields = true },
ammo_category_prototypes = { read_only = true, other_fields = true },
autoplace_control_prototypes = { read_only = true, other_fields = true },
backer_names = { read_only = true, other_fields = true },
connected_players = { read_only = true, other_fields = true },
custom_input_prototypes = { read_only = true, other_fields = true },
damage_prototypes = { read_only = true, other_fields = true },
decorative_prototypes = { read_only = true, other_fields = true },
default_map_gen_settings = { read_only = true, other_fields = true },
difficulty = { read_only = true, other_fields = true },
difficulty_settings = { read_only = true, other_fields = true },
enemy_has_vision_on_land_mines = { read_only = false, other_fields = false },
entity_prototypes = { read_only = true, other_fields = true },
equipment_grid_prototypes = { read_only = true, other_fields = true },
equipment_prototypes = { read_only = true, other_fields = true },
finished = { read_only = true, other_fields = true },
fluid_prototypes = { read_only = true, other_fields = true },
forces = { read_only = true, other_fields = true },
item_prototypes = { read_only = true, other_fields = true },
map_settings = { read_only = true, other_fields = true },
mod_setting_prototypes = { read_only = true, other_fields = true },
noise_layer_prototypes = { read_only = true, other_fields = true },
permissions = { read_only = true, other_fields = true },
player = { read_only = true, other_fields = true },
players = { read_only = true, other_fields = true },
recipe_prototypes = { read_only = true, other_fields = true },
speed = { read_only = false, other_fields = false },
styles = { read_only = true, other_fields = true },
surfaces = { read_only = true, other_fields = true },
technology_prototypes = { read_only = true, other_fields = true },
tick = { read_only = true, other_fields = true },
tick_paused = { read_only = false, other_fields = false },
ticks_played = { read_only = true, other_fields = true },
ticks_to_run = { read_only = false, other_fields = false },
tile_prototypes = { read_only = true, other_fields = true },
virtual_signal_prototypes = { read_only = true, other_fields = true }
2022-03-01 20:17:53 +02:00
}
2024-09-25 19:20:34 +02:00
},
prototypes = {
other_fields = false,
2024-10-25 22:32:25 +02:00
read_only = true,
2024-09-25 19:20:34 +02:00
fields = {
2024-10-25 22:32:25 +02:00
"get_achievement_filtered",
"get_decorative_filtered",
"get_entity_filtered",
"get_equipment_filtered",
"get_fluid_filtered",
"get_history",
"get_item_filtered",
"get_mod_setting_filtered",
"get_recipe_filtered",
"get_technology_filtered",
"get_tile_filtered",
achievement = { read_only = true, other_fields = true },
active_trigger = { read_only = true, other_fields = true },
airborne_pollutant = { read_only = true, other_fields = true },
ammo_category = { read_only = true, other_fields = true },
asteroid_chunk = { read_only = true, other_fields = true },
2024-09-25 19:20:34 +02:00
autoplace_control = { read_only = true, other_fields = true },
2024-10-25 22:32:25 +02:00
burner_usage = { read_only = true, other_fields = true },
collision_layer = { read_only = true, other_fields = true },
custom_event = { read_only = true, other_fields = true },
custom_input = { read_only = true, other_fields = true },
damage = { read_only = true, other_fields = true },
decorative = { read_only = true, other_fields = true },
entity = { read_only = true, other_fields = true },
recipe = { read_only = true, other_fields = true },
equipment = { read_only = true, other_fields = true },
equipment_category = { read_only = true, other_fields = true },
equipment_grid = { read_only = true, other_fields = true },
fluid = { read_only = true, other_fields = true },
font = { read_only = true, other_fields = true },
fuel_category = { read_only = true, other_fields = true },
item = { read_only = true, other_fields = true },
item_group = { read_only = true, other_fields = true },
item_subgroup = { read_only = true, other_fields = true },
map_gen_preset = { read_only = true, other_fields = true },
mod_setting = { read_only = true, other_fields = true },
module_category = { read_only = true, other_fields = true },
named_noise_expression = { read_only = true, other_fields = true },
named_noise_function = { read_only = true, other_fields = true },
particle = { read_only = true, other_fields = true },
procession = { read_only = true, other_fields = true },
procession_layer_inheritance_group = { read_only = true, other_fields = true },
quality = { read_only = true, other_fields = true },
recipe_category = { read_only = true, other_fields = true },
resource_category = { read_only = true, other_fields = true },
shortcut = { read_only = true, other_fields = true },
space_connection = { read_only = true, other_fields = true },
space_location = { read_only = false, other_fields = true },
style = { read_only = true, other_fields = true },
surface = { read_only = true, other_fields = true },
surface_property = { read_only = true, other_fields = true },
technology = { read_only = true, other_fields = true },
tile = { read_only = true, other_fields = true },
trivial_smoke = { read_only = true, other_fields = true },
virtual_signal = { read_only = true, other_fields = true },
"max_beacon_supply_area_distance",
"max_electric_pole_connection_distance",
"max_electric_pole_supply_area_distance",
"max_force_distraction_chunk_distance",
"max_force_distraction_distance",
"max_gate_activation_distance",
"max_inserter_reach_distance",
"max_pipe_to_ground_distance",
"max_underground_belt_distance",
2024-09-25 19:20:34 +02:00
}
2024-10-25 22:32:25 +02:00
},
},
globals = {
-- @global@: The global dictionary, useful for storing data persistent across a save-load cycle.
-- Writing access is given to the mod-id field (for mod-wise saved data).
-- (http://lua-api.factorio.com/latest/storage.html)
'storage',
2024-10-21 15:43:41 +02:00
'helpers',
-- @MOD@: Keep it organized, use this variable for anything that "NEEDS" to be global for some reason.
2022-03-01 20:17:53 +02:00
'MOD'
}
}
stds.factorio_data = {
read_globals = {
data = {
fields = {
raw = {
other_fields = true,
read_only = false
},
2022-03-01 20:17:53 +02:00
'extend',
'is_demo'
}
},
settings = {
fields = {
2022-03-01 20:17:53 +02:00
'startup',
'global',
'player'
}
},
--Popular mods
angelsmods = {
other_fields = true
},
bobmods = {
other_fields = true
},
mods = {
other_fields = true
2024-10-25 22:32:25 +02:00
},
prototypes = {
other_fields = false,
read_only = true,
fields = {
"get_achievement_filtered",
"get_decorative_filtered",
"get_entity_filtered",
"get_equipment_filtered",
"get_fluid_filtered",
"get_history",
"get_item_filtered",
"get_mod_setting_filtered",
"get_recipe_filtered",
"get_technology_filtered",
"get_tile_filtered",
achievement = { read_only = true, other_fields = true },
active_trigger = { read_only = true, other_fields = true },
airborne_pollutant = { read_only = true, other_fields = true },
ammo_category = { read_only = true, other_fields = true },
asteroid_chunk = { read_only = true, other_fields = true },
autoplace_control = { read_only = true, other_fields = true },
burner_usage = { read_only = true, other_fields = true },
collision_layer = { read_only = true, other_fields = true },
custom_event = { read_only = true, other_fields = true },
custom_input = { read_only = true, other_fields = true },
damage = { read_only = true, other_fields = true },
decorative = { read_only = true, other_fields = true },
entity = { read_only = true, other_fields = true },
recipe = { read_only = true, other_fields = true },
equipment = { read_only = true, other_fields = true },
equipment_category = { read_only = true, other_fields = true },
equipment_grid = { read_only = true, other_fields = true },
fluid = { read_only = true, other_fields = true },
font = { read_only = true, other_fields = true },
fuel_category = { read_only = true, other_fields = true },
item = { read_only = true, other_fields = true },
item_group = { read_only = true, other_fields = true },
item_subgroup = { read_only = true, other_fields = true },
map_gen_preset = { read_only = true, other_fields = true },
mod_setting = { read_only = true, other_fields = true },
module_category = { read_only = true, other_fields = true },
named_noise_expression = { read_only = true, other_fields = true },
named_noise_function = { read_only = true, other_fields = true },
particle = { read_only = true, other_fields = true },
procession = { read_only = true, other_fields = true },
procession_layer_inheritance_group = { read_only = true, other_fields = true },
quality = { read_only = true, other_fields = true },
recipe_category = { read_only = true, other_fields = true },
resource_category = { read_only = true, other_fields = true },
shortcut = { read_only = true, other_fields = true },
space_connection = { read_only = true, other_fields = true },
space_location = { read_only = true, other_fields = true },
style = { read_only = true, other_fields = true },
surface = { read_only = true, other_fields = true },
surface_property = { read_only = true, other_fields = true },
technology = { read_only = true, other_fields = true },
tile = { read_only = true, other_fields = true },
trivial_smoke = { read_only = true, other_fields = true },
virtual_signal = { read_only = true, other_fields = true },
"max_beacon_supply_area_distance",
"max_electric_pole_connection_distance",
"max_electric_pole_supply_area_distance",
"max_force_distraction_chunk_distance",
"max_force_distraction_distance",
"max_gate_activation_distance",
"max_inserter_reach_distance",
"max_pipe_to_ground_distance",
"max_underground_belt_distance",
}
},
}
} --))
--(( Factorio Globals are bad mkay ))--
stds.factorio_base_control = {
2023-06-17 23:32:35 +02:00
read_globals = { 'silo_script', 'mod_gui', 'camera' }
}
stds.factorio_base_scenarios = {
globals = {
2022-03-01 20:17:53 +02:00
'check_automate_science_packs_advice',
'check_research_hints',
'check_supplies',
'manage_attacks',
'all_dead',
'on_win',
'difficulty_number',
'init_attack_data',
'handle_attacks',
'count_items_in_container',
'progress',
'scanned',
'check_light',
'check_machine_gun',
'level',
'story_table',
'tightspot_prices',
'tightspot_make_offer',
'tightspot_init',
'tightspot_get_required_balance',
'tightspot_init_level',
'tightspot_init_spending_frame',
'tightspot_init_progress_frame',
'tightspot_update_progress',
'tightspot_update_spending',
'tightspot_get_missing_to_win',
'tightspot_sell_back',
'tightspot_start_level',
'tightspot_show_level_description',
'tightspot_update_speed_label',
'map_ignore',
'tightspot_check_level',
'land_price',
'transport_belt_madness_init',
'transport_belt_madness_init_level',
'transport_belt_madness_create_chests',
'transport_belt_madness_fill_chests',
'transport_belt_madness_start_level',
'map_ignore',
'map_clear',
'map_load',
'map_save',
'transport_belt_madness_show_level_description',
'transport_belt_madness_check_level',
'transport_belt_madness_next_level',
'transport_belt_madness_clear_level',
'transport_belt_madness_contains_next_level',
'restricted',
'check_built_items',
'result',
'disable_combat_technologies',
'apply_character_modifiers',
'apply_combat_modifiers',
'apply_balance',
'load_config',
'starting_area_constant',
'create_next_surface',
'end_round',
'prepare_next_round',
'silo_died',
'choose_joining_gui',
'destroy_joining_guis',
'create_random_join_gui',
'create_auto_assign_gui',
'create_pick_join_gui',
'create_config_gui',
'make_config_table',
'default',
'make_team_gui',
'make_team_gui_config',
'add_team_button_press',
'trash_team_button_press',
'remove_team_from_team_table',
'add_team_to_team_table',
'set_teams_from_gui',
'on_team_button_press',
'make_color_dropdown',
'create_balance_option',
'create_disable_frame',
'disable_frame',
'parse_disabled_items',
'set_balance_settings',
'config_confirm',
'parse_config_from_gui',
'get_color',
'roll_starting_area',
'delete_roll_surfaces',
'auto_assign',
'destroy_config_for_all',
'prepare_map',
'set_evolution_factor',
'update_players_on_team_count',
'random_join',
'init_player_gui',
'destroy_player_gui',
'objective_button_press',
'admin_button_press',
'admin_frame_button_press',
'diplomacy_button_press',
'update_diplomacy_frame',
'diplomacy_frame_button_press',
'team_changed_diplomacy',
'diplomacy_check_press',
'get_stance',
'give_inventory',
'setup_teams',
'disable_items_for_all',
'set_random_team',
'set_diplomacy',
'create_spawn_positions',
'set_spawn_position',
'set_team_together_spawns',
'chart_starting_area_for_force_spawns',
'check_starting_area_chunks_are_generated',
'check_player_color',
'check_round_start',
'clear_starting_area_enemies',
'check_no_rush_end',
'check_no_rush_players',
'finish_setup',
'chart_area_for_force',
'setup_start_area_copy',
'update_copy_progress',
'update_progress_bar',
'copy_paste_starting_area_tiles',
'copy_paste_starting_area_entities',
'create_silo_for_force',
'setup_research',
'on_chunk_generated',
'get_distance_to_nearest_spawn',
'create_wall_for_force',
'fpn',
'give_items',
'create_item_frame',
'create_technologies_frame',
'create_cheat_frame',
'create_day_frame',
'time_modifier',
'points_per_second_start',
'points_per_second_level_subtract',
'levels',
'update_info',
'get_time_left',
'update_time_left',
'on_joined',
'make_frame',
'update_frame',
'update_table',
'calculate_task_item_multiplayer',
'setup_config',
'select_from_probability_table',
'select_inventory',
'select_equipment',
'select_challange_type',
'save_round_statistics',
'start_challenge',
'create_teams',
'set_areas',
'decide_player_team',
'set_teams',
'refresh_leaderboard',
'set_player',
'generate_technology_list',
'generate_research_task',
'setup_unlocks',
'check_technology_progress',
'generate_production_task',
'generate_shopping_list_task',
'set_gui_flow_table',
'create_visibility_button',
'check_item_lists',
'update_task_gui',
'check_end_of_round',
'end_round_gui_update',
'try_to_check_victory',
'update_gui',
'check_start_round',
'check_start_set_areas',
'check_start_setting_entities',
'check_set_areas',
'check_clear_areas',
'check_chests',
'check_chests_shopping_list',
'check_chests_production',
'check_input_chests',
'fill_input_chests',
'check_victory',
'shopping_task_finished',
'calculate_force_points',
'update_research_task_table',
'update_production_task_table',
'update_shopping_list_task_table',
'create_joined_game_gui',
'pre_ending_round',
'player_ending_prompt',
'update_end_timer',
'update_begin_timer',
'team_finished',
'save_points_list',
'give_force_players_points',
'update_winners_list',
'set_spectator',
'set_character',
'give_starting_inventory',
'give_equipment',
'shuffle_table',
'format_time',
'spairs',
'fill_leaderboard',
'create_grid',
'simple_entities',
'save_map_data',
'clear_map',
'create_tiles',
'recreate_entities',
'map_sets',
'give_points',
'init_forces',
'init_globals',
'init_unit_settings',
'check_next_wave',
'next_wave',
'calculate_wave_power',
'wave_end',
'make_next_spawn_tick',
'check_spawn_units',
'get_wave_units',
'spawn_units',
'randomize_ore',
'set_command',
'command_straglers',
'unit_config',
'make_next_wave_tick',
'time_to_next_wave',
'time_to_wave_end',
'rocket_died',
'unit_died',
'get_bounty_price',
'setup_waypoints',
'insert_items',
'give_starting_equipment',
'give_spawn_equipment',
'next_round_button_visible',
'gui_init',
'create_wave_frame',
'create_money_frame',
'create_upgrade_gui',
'update_upgrade_listing',
'upgrade_research',
'get_upgrades',
'get_money',
'update_connected_players',
'update_round_number',
'set_research',
'set_recipes',
'check_deconstruction',
'check_blueprint_placement',
'loop_entities',
'experiment_items',
'setup',
'story_gui_click',
'clear_surface',
'add_run_trains_button',
'puzzle_condition',
'basic_signals',
'loop_trains',
'Y_offset',
'ghosts_1',
'ghosts_2',
'required_path',
'through_wall_path',
'count',
'check_built_real_rail',
'current_ghosts_count',
'other',
'rails',
'set_rails',
'straight_section',
'late_entities',
'entities',
'stop',
'get_spawn_coordinate',
--tutorials
2022-03-01 20:17:53 +02:00
'intermission',
'create_entities_on_tick',
'on_player_created',
'required_count',
'non_player_entities',
'clear_rails',
'chest',
'damage',
'furnace',
'init_prototypes',
'build_infi_table',
'junk',
'update_player_tags',
'time_left',
'team_production',
'create_task_frame',
'create_visibilty_buttons',
'update_leaderboard',
'in_in_area'
}
}
stds.factorio_base_data = {
globals = {
--Style
2022-03-01 20:17:53 +02:00
'make_cursor_box',
'make_full_cursor_box',
'default_container_padding',
'default_orange_color',
'default_light_orange_color',
'warning_red_color',
'achievement_green_color',
'achievement_tan_color',
'orangebuttongraphcialset',
'bluebuttongraphcialset',
'bonus_gui_ordering',
'trivial_smoke',
'technology_slot_base_width',
'technology_slot_base_height',
'default_frame_font_vertical_compensation',
--Belts
2022-03-01 20:17:53 +02:00
'transport_belt_connector_frame_sprites',
'transport_belt_circuit_wire_connection_point',
'transport_belt_circuit_wire_max_distance',
'transport_belt_circuit_connector_sprites',
'ending_patch_prototype',
'basic_belt_horizontal',
'basic_belt_vertical',
'basic_belt_ending_top',
'basic_belt_ending_bottom',
'basic_belt_ending_side',
'basic_belt_starting_top',
'basic_belt_starting_bottom',
'basic_belt_starting_side',
'fast_belt_horizontal',
'fast_belt_vertical',
'fast_belt_ending_top',
'fast_belt_ending_bottom',
'fast_belt_ending_side',
'fast_belt_starting_top',
'fast_belt_starting_bottom',
'fast_belt_starting_side',
'express_belt_horizontal',
'express_belt_vertical',
'express_belt_ending_top',
'express_belt_ending_bottom',
'express_belt_ending_side',
'express_belt_starting_top',
'express_belt_starting_bottom',
'express_belt_starting_side',
--Circuit Connectors
2022-03-01 20:17:53 +02:00
'circuit_connector_definitions',
'default_circuit_wire_max_distance',
'inserter_circuit_wire_max_distance',
'universal_connector_template',
'belt_connector_template',
'belt_frame_connector_template',
'inserter_connector_template',
--Inserter Circuit Connectors
2022-03-01 20:17:53 +02:00
'inserter_circuit_wire_max_distance',
'inserter_default_stack_control_input_signal',
--Sounds/beams
2022-03-01 20:17:53 +02:00
'make_heavy_gunshot_sounds',
'make_light_gunshot_sounds',
'make_laser_sounds',
--Gun/Laser
2022-03-01 20:17:53 +02:00
'gun_turret_extension',
'gun_turret_extension_shadow',
'gun_turret_extension_mask',
'gun_turret_attack',
'laser_turret_extension',
'laser_turret_extension_shadow',
'laser_turret_extension_mask',
--Pipes
2022-03-01 20:17:53 +02:00
'pipecoverspictures',
'pipepictures',
'assembler2pipepictures',
'assembler3pipepictures',
'make_heat_pipe_pictures',
--Combinators
2022-03-01 20:17:53 +02:00
'generate_arithmetic_combinator',
'generate_decider_combinator',
'generate_constant_combinator',
--Rail
2022-03-01 20:17:53 +02:00
'destroyed_rail_pictures',
'rail_pictures',
'rail_pictures_internal',
'standard_train_wheels',
'drive_over_tie',
'rolling_stock_back_light',
'rolling_stock_stand_by_light',
--Enemies
2022-03-01 20:17:53 +02:00
'make_enemy_autoplace',
'make_enemy_spawner_autoplace',
'make_enemy_worm_autoplace',
'make_spitter_attack_animation',
'make_spitter_run_animation',
'make_spitter_dying_animation',
'make_spitter_attack_parameters',
'make_spitter_roars',
'make_spitter_dying_sounds',
'make_spawner_idle_animation',
'make_spawner_die_animation',
'make_biter_run_animation',
'make_biter_attack_animation',
'make_biter_die_animation',
'make_biter_roars',
'make_biter_dying_sounds',
'make_biter_calls',
'make_worm_roars',
'make_worm_dying_sounds',
'make_worm_folded_animation',
'make_worm_preparing_animation',
'make_worm_prepared_animation',
'make_worm_attack_animation',
'make_worm_die_animation',
--Other
2022-03-01 20:17:53 +02:00
'tile_variations_template',
'make_water_autoplace_settings',
'make_unit_melee_ammo_type',
'make_trivial_smoke',
'make_4way_animation_from_spritesheet',
'flying_robot_sounds',
'productivitymodulelimitation',
'crash_trigger',
'capsule_smoke',
'make_beam',
'playeranimations',
'make_blood_tint',
'make_shadow_tint',
--tiles
2022-03-01 20:17:53 +02:00
'water_transition_template',
'make_water_transition_template',
'water_autoplace_settings',
'water_tile_type_names',
'patch_for_inner_corner_of_transition_between_transition'
}
}
stds.factorio_base_story = {
globals = {
2022-03-01 20:17:53 +02:00
'story_init_helpers',
'story_update_table',
'story_init',
'story_update',
'story_on_tick',
'story_add_update',
'story_remove_update',
'story_jump_to',
'story_elapsed',
'story_elapsed_check',
'story_show_message_dialog',
'set_goal',
'player_set_goal',
'on_player_joined',
'flash_goal',
'set_info',
'player_set_info',
'export_entities',
'list',
'recreate_entities',
'entity_to_connect',
'limit_camera',
'find_gui_recursive',
'enable_entity_export',
'add_button',
'on_gui_click',
'set_continue_button_style',
'add_message_log',
'story_add_message_log',
'player_add_message_log',
'message_log_frame',
'message_log_scrollpane',
'message_log_close_button',
'message_log_table',
'toggle_message_log_button',
'toggle_objective_button',
'message_log_init',
'add_gui_recursive',
'add_toggle_message_log_button',
'add_toggle_objective_button',
'mod_gui',
'flash_message_log_button',
'flash_message_log_on_tick',
'story_gui_click',
'story_points_by_name',
'story_branches',
'player',
'surface',
'deconstruct_on_tick',
'recreate_entities_on_tick',
'flying_congrats',
'story_table'
}
}
stds.factorio_circuit_connector_generated = {
globals = {
2022-03-01 20:17:53 +02:00
'default_circuit_wire_max_distance',
'circuit_connector_definitions',
'universal_connector_template',
'belt_connector_template',
'belt_frame_connector_template',
'inserter_connector_template',
'inserter_connector_template',
'inserter_circuit_wire_max_distance',
'inserter_default_stack_control_input_signal',
'transport_belt_connector_frame_sprites',
'transport_belt_circuit_wire_max_distance'
}
} --))
--(( STDLIB ))--
stds.stdlib = {
read_globals = {
table = {
fields = {
2022-03-01 20:17:53 +02:00
'mean',
'binary_search',
'shuffle_table',
2024-10-25 22:32:25 +02:00
'spairs',
'shuffle_by_distance',
2022-03-01 20:17:53 +02:00
'map',
'avg',
'count_keys',
'sum',
'max',
'remove',
'insert',
'invert',
'first',
'sort',
'compare',
'maxn',
'any',
'array_to_dictionary',
'each',
'flatten',
'keys',
'filter',
'remove_keys',
'flexcopy',
'find',
'fullcopy',
'values',
'pack',
'deepcopy',
'concat',
'clear',
'min',
'is_empty',
'merge',
'size',
'dictionary_merge',
'unpack',
'last'
}
},
string = {
fields = {
2022-03-01 20:17:53 +02:00
'is_space',
'is_empty',
'match',
'title',
'upper',
'gmatch',
'trim',
'split',
'len',
'ordinal_suffix',
'dump',
'shorten',
'reverse',
'ends_with',
'byte',
'starts_with',
'join',
'is_alpha',
'lower',
'is_upper',
'is_digit',
'is_alnum',
'rjust',
'center',
'ljust',
'format',
'char',
'is_lower',
'contains',
'gsub',
'find',
'rep',
'sub'
}
},
math = {
fields = {
2022-03-01 20:17:53 +02:00
'asin',
'max',
'clamp',
'modf',
'midrange_mean',
'pow',
'ldexp',
'maxuint16',
'fmod',
'round_to',
'randomseed',
'huge',
'harmonic_mean',
'tan',
'maxint32',
'quadratic_mean',
'pi',
'energetic_mean',
'minint8',
'frexp',
'generalized_mean',
'rad',
'sin',
'sinh',
'min',
'geometric_mean',
'atan',
'avg',
'cosh',
'maxint8',
'arithmetic_mean',
'exp',
'sum',
'round',
'maxuint64',
'minint64',
'ceil',
'maxint64',
'atan2',
'floor_to',
'floor',
'log',
'maxint16',
'minint16',
'tanh',
'acos',
'deg',
'cos',
'log10',
'maxuint8',
'abs',
'weighted_mean',
'random',
'maxuint32',
'sqrt',
'minint32'
}
2022-03-01 20:17:53 +02:00
}
},
globals = {
2022-03-01 20:17:53 +02:00
'prequire',
'rawtostring',
'traceback',
'inspect',
'serpent',
'inline_if',
'install',
'GAME',
2024-10-25 22:32:25 +02:00
'PROTOTYPES',
2022-03-01 20:17:53 +02:00
'AREA',
'POSITION',
'TILE',
'SURFACE',
'CHUNK',
'COLOR',
'ENTITY',
'INVENTORY',
'RESOURCE',
'CONFIG',
'LOGGER',
'QUEUE',
'EVENT',
'GUI',
'server_commands',
'PLAYER',
'FORCE',
'log'
}
}
2022-03-01 20:17:53 +02:00
stds.stdlib_control = {}
stds.stdlib_data = {
globals = {
2022-03-01 20:17:53 +02:00
'DATA',
'RECIPE',
'ITEM',
'FLUID',
'ENTITY',
'TECHNOLOGY',
'CATEGORY'
}
} --))
--(( FACTORIO DEFINES ))--
stds.factorio_defines = {
read_globals = {
2022-03-01 20:17:53 +02:00
defines = {
fields = {
alert_type = {
fields = {
'entity_under_attack',
'custom',
'no_material_for_construction',
'turret_fire',
'no_storage',
'not_enough_construction_robots',
'train_out_of_fuel',
'entity_destroyed',
'not_enough_repair_packs'
}
},
2023-06-17 23:32:35 +02:00
anticolor = { other_fields = true },
2024-10-25 22:32:25 +02:00
build_mode = { fields = { 'forced', 'normal', 'superforced' } },
2023-06-17 23:32:35 +02:00
behavior_result = { fields = { 'success', 'in_progress', 'deleted', 'fail' } },
build_check_type = { fields = { 'script', 'manual', 'ghost_revive', 'ghost_place' } },
chain_signal_state = { fields = { 'partially_open', 'none_open', 'none', 'all_open' } },
2022-03-01 20:17:53 +02:00
chunk_generated_status = {
2023-06-17 23:32:35 +02:00
fields = { 'basic_tiles', 'corrected_tiles', 'entities', 'nothing', 'tiles', 'custom_tiles' }
2022-03-01 20:17:53 +02:00
},
circuit_condition_index = {
fields = {
'pump',
'arithmetic_combinator',
'constant_combinator',
'inserter_circuit',
'offshore_pump',
'decider_combinator',
'inserter_logistic',
'lamp'
}
},
circuit_connector_id = {
fields = {
'programmable_speaker',
'offshore_pump',
'accumulator',
'wall',
'lamp',
'roboport',
'rail_chain_signal',
'inserter',
'rail_signal',
'pump',
'storage_tank',
'combinator_output',
'electric_pole',
'combinator_input',
'constant_combinator',
'container'
}
},
2023-06-17 23:32:35 +02:00
color = { other_fields = true },
2022-03-01 20:17:53 +02:00
command = {
fields = {
'attack',
'group',
'attack_area',
'build_base',
'stop',
'compound',
'wander',
'go_to_location',
'flee'
}
},
2023-06-17 23:32:35 +02:00
compound_command = { fields = { 'return_last', 'logical_and', 'logical_or' } },
2022-03-01 20:17:53 +02:00
control_behavior = {
fields = {
inserter = {
fields = {
circuit_mode_of_operation = {
fields = {
'set_stack_size',
'read_hand_contents',
'none',
'set_filters',
'enable_disable'
}
},
2023-06-17 23:32:35 +02:00
hand_read_mode = { fields = { 'hold', 'pulse' } }
2022-03-01 20:17:53 +02:00
}
},
2023-06-17 23:32:35 +02:00
lamp = { fields = { circuit_mode_of_operation = { fields = { 'use_colors' } } } },
2022-03-01 20:17:53 +02:00
logistic_container = {
2023-06-17 23:32:35 +02:00
fields = { circuit_mode_of_operation = { fields = { 'set_requests', 'send_contents' } } }
2022-03-01 20:17:53 +02:00
},
2023-06-17 23:32:35 +02:00
mining_drill = { fields = { resource_read_mode = { fields = { 'this_miner', 'entire_patch' } } } },
transport_belt = { fields = { content_read_mode = { fields = { 'hold', 'pulse' } } } },
2022-03-01 20:17:53 +02:00
type = {
fields = {
'rail_chain_signal',
'arithmetic_combinator',
'constant_combinator',
'lamp',
'generic_on_off',
'wall',
'container',
'programmable_speaker',
'accumulator',
'roboport',
'inserter',
'rail_signal',
'storage_tank',
'train_stop',
'transport_belt',
'decider_combinator',
'mining_drill',
'logistic_container'
}
}
2022-03-01 20:17:53 +02:00
}
},
2024-10-26 02:06:48 +02:00
controllers = { fields = { 'spectator', 'character', 'god', 'cutscene', 'editor', 'ghost', 'remote' } },
2022-03-01 20:17:53 +02:00
deconstruction_item = {
fields = {
2023-06-17 23:32:35 +02:00
entity_filter_mode = { fields = { 'whitelist', 'blacklist' } },
tile_filter_mode = { fields = { 'whitelist', 'blacklist' } },
tile_selection_mode = { fields = { 'only', 'never', 'always', 'normal' } }
2022-03-01 20:17:53 +02:00
}
},
2023-06-17 23:32:35 +02:00
difficulty = { fields = { 'hard', 'easy', 'normal' } },
2022-03-01 20:17:53 +02:00
difficulty_settings = {
fields = {
2023-06-17 23:32:35 +02:00
recipe_difficulty = { fields = { 'normal', 'expensive' } },
technology_difficulty = { fields = { 'normal', 'expensive' } }
2022-03-01 20:17:53 +02:00
}
},
direction = {
2023-06-17 23:32:35 +02:00
fields = { 'southwest', 'north', 'northeast', 'west', 'east', 'northwest', 'south', 'southeast' }
2022-03-01 20:17:53 +02:00
},
2024-10-25 22:32:25 +02:00
entity_status_diode = {
fields = { 'green', 'red', 'yellow' }
},
wire_origin = {
fields = {
'player',
'radars',
'script',
}
},
wire_connector_id = {
fields = {
'circuit_green',
'circuit_red',
'combinator_input_green',
'combinator_input_red',
'combinator_output_green',
'combinator_output_red',
'pole_copper',
'power_switch_left_copper',
'power_switch_right_copper',
}
},
2022-03-01 20:17:53 +02:00
disconnect_reason = {
fields = {
'desync_limit_reached',
'banned',
'cannot_keep_up',
'switching_servers',
'wrong_input',
'quit',
'kicked_and_deleted',
'afk',
'kicked',
'dropped',
'reconnect'
}
},
2023-06-17 23:32:35 +02:00
distraction = { fields = { 'by_damage', 'by_anything', 'by_enemy', 'none' } },
2022-03-01 20:17:53 +02:00
entity_status = {
fields = {
'no_power',
'networks_connected',
'item_ingredient_shortage',
'normal',
'not_connected_to_rail',
'no_recipe',
'low_power',
'fluid_ingredient_shortage',
'networks_disconnected',
'low_input_fluid',
'launching_rocket',
'no_ammo',
'no_ingredients',
'cant_divide_segments',
'full_output',
'disabled_by_control_behavior',
'charging',
'low_temperature',
'discharging',
'no_modules_to_transmit',
'waiting_for_space_in_destination',
'working',
'waiting_to_launch_rocket',
'waiting_for_source_items',
'turned_off_during_daytime',
'recharging_after_power_outage',
'preparing_rocket_for_launch',
'out_of_logistic_network',
'no_research_in_progress',
'fully_charged',
'disabled',
'disabled_by_script',
'no_minable_resources',
'no_input_fluid',
'missing_required_fluid',
'missing_science_packs',
'no_fuel',
'marked_for_deconstruction'
}
},
events = {
fields = {
2024-12-22 01:03:50 +02:00
'mtn-shift-autostash-all',
'mtn-shift-autostash-ores',
'mtn-shift-autostash-furnaces',
'mtn-shift-autostash-filtered',
'mtn-shift-autostash-wagon',
'mtn-shift-cast-spell',
2022-03-01 20:17:53 +02:00
'on_picked_up_item',
2024-11-10 13:51:28 +02:00
'on_space_platform_changed_state',
2024-10-25 22:32:25 +02:00
'on_object_destroyed',
2022-03-01 20:17:53 +02:00
'on_entity_cloned',
'on_player_main_inventory_changed',
'on_entity_damaged',
'on_pre_player_crafted_item',
'on_player_joined_game',
'on_gui_text_changed',
'on_player_demoted',
'on_unit_removed_from_group',
'on_chunk_charted',
'on_player_ammo_inventory_changed',
'on_pre_ghost_deconstructed',
'on_player_mined_tile',
'on_player_pipette',
'on_player_promoted',
'on_player_crafted_item',
'on_player_toggled_map_editor',
'on_player_clicked_gps_tag',
'on_entity_died',
'on_chart_tag_added',
'on_player_removed',
'on_script_inventory_resized',
'on_robot_mined_entity',
'on_forces_merging',
'on_research_started',
'on_rocket_launch_ordered',
'on_entity_destroyed',
'on_player_setup_blueprint',
'on_player_display_scale_changed',
'on_post_entity_died',
'on_train_changed_state',
'on_biter_base_built',
'on_player_trash_inventory_changed',
'on_pre_script_inventory_resized',
'on_console_chat',
'on_gui_opened',
'on_surface_cleared',
'on_chart_tag_modified',
'on_character_corpse_expired',
'on_player_rotated_entity',
'on_permission_group_deleted',
'on_player_gun_inventory_changed',
'on_console_command',
'on_robot_mined_tile',
'on_player_mined_item',
'on_gui_selection_state_changed',
'on_permission_group_added',
'on_player_banned',
'on_player_died',
'on_gui_value_changed',
'on_pre_chunk_deleted',
'on_build_base_arrived',
'on_resource_depleted',
'on_player_changed_surface',
'on_cancelled_upgrade',
'on_land_mine_armed',
'on_trigger_fired_artillery',
'on_player_used_capsule',
'on_chunk_generated',
'on_entity_renamed',
'on_player_cheat_mode_enabled',
'on_player_display_resolution_changed',
'on_difficulty_settings_changed',
'on_surface_renamed',
'on_permission_string_imported',
'on_player_deconstructed_area',
'on_player_placed_equipment',
'on_player_alt_selected_area',
'on_player_built_tile',
'on_player_repaired_entity',
'on_area_cloned',
'on_player_changed_position',
'on_force_reset',
'on_lua_shortcut',
'on_pre_surface_deleted',
'on_mod_item_opened',
'on_player_unmuted',
'on_ai_command_completed',
'on_sector_scanned',
'on_entity_spawned',
'on_player_fast_transferred',
'on_player_left_game',
'on_gui_selected_tab_changed',
'on_gui_switch_state_changed',
'on_force_friends_changed',
'on_player_driving_changed_state',
'on_player_cheat_mode_disabled',
'on_entity_settings_pasted',
'on_robot_pre_mined',
'on_player_cancelled_crafting',
'on_gui_closed',
'on_gui_click',
'on_technology_effects_reset',
'script_raised_set_tiles',
'on_player_configured_spider_remote',
'on_chunk_deleted',
'script_raised_revive',
'script_raised_destroy',
'script_raised_built',
'on_unit_group_finished_gathering',
'on_player_muted',
'on_script_trigger_effect',
'on_surface_deleted',
'on_built_entity',
'on_unit_added_to_group',
'on_trigger_created_entity',
'on_train_schedule_changed',
'on_unit_group_created',
'on_tick',
'on_surface_imported',
'on_surface_created',
'on_player_removed_equipment',
'on_cancelled_deconstruction',
'on_player_configured_blueprint',
'on_string_translated',
'on_spider_command_completed',
'on_selected_entity_changed',
'on_brush_cloned',
'on_train_created',
'on_player_changed_force',
'on_player_kicked',
'on_runtime_mod_setting_changed',
'on_rocket_launched',
'on_gui_confirmed',
'on_pre_player_mined_item',
'on_robot_mined',
'on_game_created_from_scenario',
'on_player_toggled_alt_mode',
'on_pre_player_died',
'on_pre_permission_group_deleted',
'on_robot_exploded_cliff',
'on_robot_built_tile',
'on_robot_built_entity',
'on_player_armor_inventory_changed',
'on_research_finished',
'on_pre_surface_cleared',
'on_pre_robot_exploded_cliff',
'on_pre_player_toggled_map_editor',
'on_permission_group_edited',
'on_pre_player_removed',
'on_force_created',
'on_market_item_purchased',
'on_pre_permission_string_imported',
'on_pre_entity_settings_pasted',
'on_player_selected_area',
'on_player_used_spider_remote',
'on_player_unbanned',
'on_player_set_quick_bar_slot',
'on_cutscene_cancelled',
'on_pre_build',
'on_player_respawned',
'on_player_mined_entity',
'on_player_flushed_fluid',
'on_gui_elem_changed',
'on_chart_tag_removed',
'on_player_cursor_stack_changed',
'on_cutscene_waypoint_reached',
'on_player_created',
'on_script_path_request_finished',
'on_pre_player_left_game',
'on_marked_for_upgrade',
'on_combat_robot_expired',
'on_marked_for_deconstruction',
'on_gui_location_changed',
'on_gui_checked_state_changed',
'on_forces_merged',
'on_force_cease_fire_changed',
'on_player_dropped_item'
}
},
flow_precision_index = {
fields = {
'two_hundred_fifty_hours',
'ten_minutes',
'ten_hours',
'one_minute',
'one_thousand_hours',
'fifty_hours',
'one_hour',
'one_second'
}
},
group_state = {
fields = {
'attacking_distraction',
'attacking_target',
'finished',
'gathering',
'moving',
'wander_in_group',
'pathfinding'
}
},
gui_type = {
fields = {
'entity',
'bonus',
'blueprint_library',
'achievement',
'item',
'server_management',
'permissions',
'research',
'custom',
'equipment',
'controller',
'tutorials',
'trains',
'tile',
'production',
'player_management',
'other_player',
'none',
'logistic'
}
},
input_action = {
fields = {
'build_item',
'change_blueprint_book_record_label',
'change_single_blueprint_record_label',
'clear_selected_blueprint',
'clear_selected_deconstruction_item',
'set_single_blueprint_record_icon',
'set_logistic_trash_filter_item',
2024-10-25 22:32:25 +02:00
'toggle_artillery_auto_targeting',
'set_rocket_silo_send_to_orbit_automated_mode',
2022-03-01 20:17:53 +02:00
'drop_to_blueprint_book',
'open_tutorials_gui',
'upgrade_opened_blueprint',
'create_blueprint_like',
'clear_selected_upgrade_item',
'open_kills_gui',
'change_item_description',
'fast_entity_transfer',
'set_recipe_notifications',
'quick_bar_set_slot',
'alt_select_blueprint_entities',
'change_decider_combinator_parameters',
'inventory_split',
'connect_rolling_stock',
'gui_confirmed',
'gui_value_changed',
'set_logistic_filter_item',
'setup_single_blueprint_record',
'set_entity_energy_property',
'stop_building_by_moving',
'set_signal',
'toggle_personal_logistic_requests',
'grab_blueprint_record',
'stack_split',
'undo',
'set_entity_logistic_trash_filter_item',
'switch_constant_combinator_state',
'export_blueprint',
'toggle_enable_vehicle_logistics_while_moving',
'copy',
'launch_rocket',
'copy_opened_blueprint',
'activate_cut',
'set_car_weapons_control',
'delete_permission_group',
'use_artillery_remote',
'copy_entity_settings',
'open_mod_item',
'open_parent_of_opened_item',
'set_flat_controller_gui',
'set_infinity_container_filter_item',
'open_gui',
'go_to_train_station',
'cancel_deconstruct',
'open_blueprint_library_gui',
'set_vehicle_automatic_targeting_parameters',
'change_riding_state',
'copy_opened_item',
'upgrade_opened_blueprint_by_record',
'gui_selection_state_changed',
'deconstruct',
'craft',
'reset_item',
'open_technology_gui',
'change_arithmetic_combinator_parameters',
'cancel_upgrade',
'map_editor_action',
'cursor_transfer',
'cancel_craft',
'change_picking_state',
'set_inventory_bar',
2024-10-27 00:01:15 +02:00
'gui_leave',
'gui_hover',
2022-03-01 20:17:53 +02:00
'gui_selected_tab_changed',
'open_logistic_gui',
'cursor_split',
'cycle_blueprint_book_backwards',
'destroy_opened_item',
'set_circuit_condition',
'open_bonus_gui',
'select_next_valid_gun',
'change_multiplayer_config',
'delete_blueprint_record',
'change_programmable_speaker_circuit_parameters',
'gui_click',
'inventory_transfer',
'open_production_gui',
'wire_dragging',
'upgrade_opened_blueprint_by_item',
'open_item',
'open_tips_and_tricks_gui',
'rotate_entity',
'set_linked_container_link_i_d',
'change_item_label',
'toggle_show_entity_info',
'flush_opened_entity_fluid',
'import_blueprint_string',
'toggle_map_editor',
'change_train_wait_condition_data',
'take_equipment',
'toggle_driving',
'select_item',
'alt_select_area',
'change_active_quick_bar',
'build_rail',
'gui_elem_changed',
'change_programmable_speaker_alert_parameters',
'toggle_entity_logistic_requests',
'disconnect_rolling_stock',
'set_player_color',
'set_splitter_priority',
'switch_to_rename_stop_gui',
'switch_power_switch_state',
'reset_assembling_machine',
'add_permission_group',
'open_current_vehicle_gui',
'open_blueprint_record',
'switch_connect_to_logistic_network',
'custom_input',
'add_train_station',
'reassign_blueprint',
'activate_copy',
'start_research',
'drag_train_wait_condition',
'start_repair',
'set_circuit_mode_of_operation',
'change_active_item_group_for_filters',
'edit_permission_group',
'use_item',
'spawn_item',
'smart_pipette',
'setup_blueprint',
'edit_custom_tag',
'setup_assembling_machine',
'build',
'import_blueprints_filtered',
'set_heat_interface_mode',
'set_logistic_filter_signal',
'begin_mining',
'set_trains_limit',
'set_train_stopped',
'set_research_finished_stops_game',
'set_inserter_max_stack_size',
'translate_string',
'set_request_from_buffers',
'set_infinity_pipe_filter',
'set_infinity_container_remove_unfiltered_items',
'set_heat_interface_temperature',
'set_filter',
'set_entity_color',
'cancel_new_blueprint',
'select_tile_slot',
'set_deconstruction_item_tile_selection_mode',
'activate_paste',
'alternative_copy',
'gui_location_changed',
'gui_switch_state_changed',
'set_controller_logistic_trash_filter_item',
'set_behavior_mode',
'set_autosort_inventory',
'set_auto_launch_rocket',
'send_spidertron',
'change_shooting_state',
'set_deconstruction_item_trees_and_rocks_only',
'select_mapper_slot',
'toggle_deconstruction_item_tile_filter_mode',
'drop_item',
'select_blueprint_entities',
'select_area',
'upgrade',
'remove_train_station',
'remove_cables',
'start_walking',
'quick_bar_set_selected_page',
'change_active_character_tab',
'paste_entity_settings',
'begin_mining_terrain',
'quick_bar_pick_slot',
'stack_transfer',
'lua_shortcut',
'drop_blueprint_record',
'open_trains_gui',
'drag_train_schedule',
'toggle_equipment_movement_bonus',
'cycle_blueprint_book_forwards',
'change_active_item_group_for_crafting',
'build_terrain',
'market_offer',
'change_entity_label',
'place_equipment',
'write_to_console',
'open_equipment',
'delete_custom_tag',
'clear_cursor',
'switch_inserter_filter_mode_state',
'open_character_gui',
'delete_blueprint_library',
'open_achievements_gui',
'mod_settings_changed',
'import_permissions_string',
'toggle_personal_roboport',
'import_blueprint',
'gui_text_changed',
'toggle_deconstruction_item_entity_filter_mode',
'admin_action',
'gui_checked_state_changed',
'flush_opened_entity_specific_fluid',
'change_train_wait_condition',
'fast_entity_split',
'destroy_item',
'cancel_research',
'edit_blueprint_tool_preview',
'select_entity_slot',
'open_train_gui',
'open_train_station_gui',
'change_train_stop_station',
'change_programmable_speaker_parameters',
'change_blueprint_record_label',
'cycle_blueprint_backwards',
'cycle_blueprint_forwards',
2024-11-08 22:58:10 +02:00
'upgrade_open_blueprint',
'parametrise_blueprint',
'copy_large_opened_blueprint',
'adjust_blueprint_snapping',
2022-03-01 20:17:53 +02:00
}
},
inventory = {
fields = {
'car_ammo',
2024-10-25 22:32:25 +02:00
'cargo_unit',
'artillery_turret_ammo',
'artillery_wagon_ammo',
'assembling_machine_input',
'assembling_machine_modules',
'assembling_machine_output',
'beacon_modules',
'burnt_result',
'car_ammo',
'car_trunk',
'cargo_wagon',
'character_ammo',
'character_armor',
'character_corpse',
'character_guns',
'character_main',
'character_trash',
'character_vehicle',
'chest',
'editor_ammo',
'editor_armor',
'editor_guns',
'editor_main',
'fuel',
'furnace_modules',
'furnace_result',
'furnace_source',
'god_main',
'item_main',
'lab_input',
'lab_modules',
'mining_drill_modules',
'roboport_material',
'roboport_robot',
'robot_cargo',
'robot_repair',
'rocket',
'rocket_silo_input',
'rocket_silo_modules',
'rocket_silo_output',
'rocket_silo_result',
'rocket_silo_rocket',
'spider_ammo',
'spider_trash',
'spider_trunk',
'turret_ammo',
2022-03-01 20:17:53 +02:00
'furnace_result',
'furnace_source',
'character_ammo',
'spider_trunk',
'fuel',
'character_trash',
'artillery_wagon_ammo',
'robot_repair',
'rocket_silo_rocket',
'beacon_modules',
'car_trunk',
'spider_trash',
'chest',
'character_corpse',
'mining_drill_modules',
'rocket_silo_result',
'turret_ammo',
'editor_ammo',
'character_armor',
'assembling_machine_input',
'assembling_machine_output',
'lab_modules',
'rocket',
'robot_cargo',
'burnt_result',
'assembling_machine_modules',
'roboport_robot',
'artillery_turret_ammo',
'roboport_material',
'spider_ammo',
'lab_input',
'item_main',
'god_main',
'editor_guns',
'furnace_modules',
'editor_main',
'character_main',
'editor_armor',
'character_vehicle',
'character_guns',
'cargo_wagon'
}
},
2023-06-17 23:32:35 +02:00
lightcolor = { other_fields = true },
2022-03-01 20:17:53 +02:00
logistic_member_index = {
fields = {
'character_provider',
'character_storage',
'vehicle_storage',
'generic_on_off_behavior',
'logistic_container',
'character_requester'
}
},
logistic_mode = {
2023-06-17 23:32:35 +02:00
fields = { 'passive_provider', 'active_provider', 'requester', 'storage', 'buffer', 'none' }
2022-03-01 20:17:53 +02:00
},
2023-06-17 23:32:35 +02:00
mouse_button_type = { fields = { 'left', 'middle', 'right', 'none' } },
rail_connection_direction = { fields = { 'left', 'straight', 'right', 'none' } },
rail_direction = { fields = { 'back', 'front' } },
relative_gui_position = { fields = { 'bottom', 'top', 'left', 'right' } },
2022-03-01 20:17:53 +02:00
relative_gui_type = {
fields = {
'blueprint_library_gui',
'item_with_inventory_gui',
'logistic_gui',
'generic_on_off_entity_gui',
'admin_gui',
'spider_vehicle_gui',
'bonus_gui',
'programmable_speaker_gui',
'upgrade_item_gui',
'power_switch_gui',
'assembling_machine_select_recipe_gui',
'equipment_grid_gui',
'blueprint_setup_gui',
'constant_combinator_gui',
'trains_gui',
'controller_gui',
'tile_variations_gui',
'train_stop_gui',
'wall_gui',
'deconstruction_item_gui',
'storage_tank_gui',
'splitter_gui',
'standalone_character_gui',
'decider_combinator_gui',
'mining_drill_gui',
'additional_entity_info_gui',
'server_config_gui',
'rocket_silo_gui',
'roboport_gui',
'infinity_pipe_gui',
'resource_entity_gui',
'beacon_gui',
'rename_stop_gui',
'reactor_gui',
'rail_signal_gui',
'rail_chain_signal_gui',
'inserter_gui',
'arithmetic_combinator_gui',
'assembling_machine_gui',
'train_gui',
'burner_equipment_gui',
'production_gui',
'pipe_gui',
'permissions_gui',
'loader_gui',
'electric_energy_interface_gui',
'transport_belt_gui',
'furnace_gui',
'other_player_gui',
'lab_gui',
'armor_gui',
'heat_interface_gui',
'achievement_gui',
'linked_container_gui',
'blueprint_book_gui',
'lamp_gui',
'electric_network_gui',
'market_gui',
'accumulator_gui',
'entity_with_energy_source_gui',
'container_gui',
'car_gui',
'entity_variations_gui'
}
},
2023-06-17 23:32:35 +02:00
render_mode = { fields = { 'chart_zoomed_in', 'game', 'chart' } },
rich_text_setting = { fields = { 'disabled', 'enabled', 'highlight' } },
2022-03-01 20:17:53 +02:00
riding = {
fields = {
2023-06-17 23:32:35 +02:00
acceleration = { fields = { 'reversing', 'accelerating', 'nothing', 'braking' } },
direction = { fields = { 'left', 'straight', 'right' } }
2022-03-01 20:17:53 +02:00
}
},
2023-06-17 23:32:35 +02:00
shooting = { fields = { 'shooting_selected', 'not_shooting', 'shooting_enemies' } },
signal_state = { fields = { 'reserved_by_circuit_network', 'reserved', 'closed', 'open' } },
time = { fields = { 'hour', 'week', 'year', 'month', 'minute', 'second', 'day' } },
2022-03-01 20:17:53 +02:00
train_state = {
fields = {
'no_path',
'manual_control',
'manual_control_stop',
'on_the_path',
'wait_station',
'no_schedule',
'wait_signal',
'arrive_station',
'arrive_signal',
'path_lost'
}
},
transport_line = {
fields = {
'right_line',
'left_split_line',
'left_underground_line',
'secondary_left_split_line',
'secondary_right_split_line',
'secondary_right_line',
'secondary_left_line',
'right_underground_line',
'left_line',
'right_split_line'
}
},
2023-06-17 23:32:35 +02:00
wire_connection_id = { fields = { 'power_switch_right', 'power_switch_left', 'electric_pole' } },
wire_type = { fields = { 'copper', 'green', 'red' } }
}
2022-03-01 20:17:53 +02:00
}
}
2022-03-01 20:17:53 +02:00
}
2022-04-05 19:28:08 +02:00
--))
--[[ Options
"ignore", "std", "globals", "unused_args", "self", "compat", "global", "unused", "redefined",
"unused_secondaries", "allow_defined", "allow_defined_top", "module",
"read_globals", "new_globals", "new_read_globals", "enable", "only", "not_globals",
"max_line_length", "max_code_line_length", "max_string_line_length", "max_comment_line_length",
"max_cyclomatic_complexity"
--]]
--[[ Warnings list
-- 011 A syntax error.
-- 021 An invalid inline option.
-- 022 An unpaired inline push directive.
-- 023 An unpaired inline pop directive.
-- 111 Setting an undefined global variable.
-- 112 Mutating an undefined global variable.
-- 113 Accessing an undefined global variable.
-- 121 Setting a read-only global variable.
-- 122 Setting a read-only field of a global variable.
-- 131 Unused implicitly defined global variable.
-- 142 Setting an undefined field of a global variable.
-- 143 Accessing an undefined field of a global variable.
-- 211 Unused local variable.
-- 212 Unused argument.
-- 213 Unused loop variable.
-- 221 Local variable is accessed but never set.
-- 231 Local variable is set but never accessed.
-- 232 An argument is set but never accessed.
-- 233 Loop variable is set but never accessed.
-- 241 Local variable is mutated but never accessed.
-- 311 Value assigned to a local variable is unused.
-- 312 Value of an argument is unused.
-- 313 Value of a loop variable is unused.
-- 314 Value of a field in a table literal is unused.
-- 321 Accessing uninitialized local variable.
-- 331 Value assigned to a local variable is mutated but never accessed.
-- 341 Mutating uninitialized local variable.
-- 411 Redefining a local variable.
-- 412 Redefining an argument.
-- 413 Redefining a loop variable.
-- 421 Shadowing a local variable.
-- 422 Shadowing an argument.
-- 423 Shadowing a loop variable.
-- 431 Shadowing an upvalue.
-- 432 Shadowing an upvalue argument.
-- 433 Shadowing an upvalue loop variable.
-- 511 Unreachable code.
-- 512 Loop can be executed at most once.
-- 521 Unused label.
-- 531 Left-hand side of an assignment is too short.
-- 532 Left-hand side of an assignment is too long.
-- 541 An empty do end block.
-- 542 An empty if branch.
-- 551 An empty statement.
-- 611 A line consists of nothing but whitespace.
-- 612 A line contains trailing whitespace.
-- 613 Trailing whitespace in a string.
-- 614 Trailing whitespace in a comment.
-- 621 Inconsistent indentation (SPACE followed by TAB).
-- 631 Line is too long.
--]]