Первый фикс

Пачки некоторых позиций увеличены
This commit is contained in:
2024-03-01 20:53:32 +03:00
commit 7c9c708c92
23653 changed files with 767936 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
local inspect = _ENV.inspect
local function setup_event_data(Event, valid_event_id, id_to_name)
local function get_registered_counts(reg_type)
local core, nth, on_events = 0, 0, 0
local events = {}
for id, registry in pairs(Event.registry) do
if tonumber(id) then
if id < 0 then
nth = nth + #registry
else
on_events = on_events + #registry
end
else
if Event.core_events[id] then
core = core + #registry
else
on_events = on_events + #registry
end
end
local name = id_to_name(id)
events[name] = (events[name] or 0) + #registry
end
local all = {
core = core,
events = events,
nth = nth,
on_events = on_events,
total = on_events + nth + core
}
return reg_type and all[reg_type] or all
end
local function dump_data()
local event_data = {
count_data = get_registered_counts(),
event_order = script.get_event_order(),
custom_events = Event.custom_events,
registry = Event.registry,
options = {
protected_mode = Event.options.protected_mode,
force_crc = Event.options.force_crc,
inspect_event = Event.options.inspect_event,
skip_valid = Event.options.skip_valid
}
}
local registry, factorio_events = {}, {}
for event, data in pairs(Event.registry) do
registry['[' .. event .. '] ' .. id_to_name(event)] = data
if valid_event_id(event) then
factorio_events['[' .. event .. '] ' .. id_to_name(event)] = Event.script.get_event_handler(event)
end
end
game.write_file(Event.get_file_path('Event/Event.lua'), 'return ' .. inspect(event_data))
game.write_file(Event.get_file_path('Event/Event.registry.lua'), 'return ' .. inspect(registry, { longkeys = true, arraykeys = true }))
game.write_file(Event.get_file_path('Event/Factorio.registry.lua'), 'return ' .. inspect(factorio_events, { longkeys = true, arraykeys = true }))
end
return dump_data
end
return setup_event_data

View File

@@ -0,0 +1,45 @@
--- Event Filters
-- Predefined event filter functions
-- @module Event.Filters
local Filters = {
entity = {},
player = {},
}
function Filters.on_key(event_key, pattern)
return function(event)
local key = event and event[event_key]
return key and key:match(pattern)
end
end
function Filters.entity.name(event, pattern)
local entity = event and (event.created_entity or event.entity)
return entity.name:match(pattern)
end
function Filters.entity.type(event, pattern)
local entity = event and (event.created_entity or event.entity)
return entity.type:match(pattern)
end
function Filters.player.cursor_stack(event, pattern)
local player = game.get_player(event.player_index)
local stack = player.cursor_stack
return stack and stack.valid_for_read and stack.name:match(pattern)
end
function Filters.gui(event, pattern)
if event.element and event.element.valid then
local match_str = event.element.name:match(pattern)
if match_str then
event.match = match_str
event.state = event.name == defines.events.on_gui_checked_state_changed and event.element.state or nil
event.text = event.name == defines.events.on_gui_text_changed and event.element.text or nil
return match_str
end
end
end
return Filters

View File

@@ -0,0 +1,21 @@
local table = require('__stdlib__/stdlib/utils/table')
local function merge_additional_data(additional_data_array, data)
for _, new_data in pairs(additional_data_array) do
if type(new_data) == 'table' then
table.merge(data, table.deepcopy(new_data))
elseif type(new_data) == 'function' then
local new_data_func_result = new_data(data.index)
if type(new_data_func_result) == 'table' then
table.merge(data, new_data_func_result)
else
error('additional data function did not return a table')
end
else
error('additional data present but is not a function or table')
end
end
return data
end
return merge_additional_data