Aleksei-bird 7c9c708c92 Первый фикс
Пачки некоторых позиций увеличены
2024-03-01 20:54:33 +03:00

62 lines
2.2 KiB
Lua

--[[
A basic interface script, with generic functions
usage:
local interface = require(__stdlib__/stdlib/scripts/interface)
interface.myfunc = function() end
remote.add_interface(script.mod_name, interface)
interface.myfunc2 = function() end -- Can even add new functions afterwards!
]] --
local interface = {}
local Table = require('__stdlib__/stdlib/utils/table')
local Event = require('__stdlib__/stdlib/event/event')
local Game = require('__stdlib__/stdlib/game')
local Changes = require('__stdlib__/stdlib/event/changes')
local Player = require('__stdlib__/stdlib/event/player')
local Force = require('__stdlib__/stdlib/event/force')
local ignore_defines = Table.invert { 'anticolor', 'lightcolor', 'color', 'time' }
local function write(data, name, keyignore, maxlevel)
return serpent.block(data, { comment = false, nocode = true, name = name, keyignore = keyignore, maxlevel = maxlevel })
end
interface['write_global'] = function()
game.remove_path(script.mod_name)
game.write_file(script.mod_name .. '/global.lua', write(global, 'global'))
game.write_file(script.mod_name .. '/package.lua', write(package.loaded, 'package', nil, 1))
game.write_file(script.mod_name .. '/interface.lua', write(remote.interfaces[script.mod_name] or {}, 'interface'))
game.write_file(script.mod_name .. '/_G.lua', write(_G, 'globals', nil, 1))
Event.dump_data()
Player.dump_data()
Force.dump_data()
Changes.dump_data()
end
interface['dump_all'] = function()
game.remove_path('Interfaces')
game.write_file('defines.lua', write(defines, 'defines', ignore_defines))
game.write_file('interfaces.lua', write(remote.interfaces, 'interfaces'))
for name, interfaces in pairs(remote.interfaces) do
-- Write each interface
game.write_file('Interfaces/' .. name .. '.lua', write(interfaces, 'interface'))
if interfaces['write_global'] then remote.call(name, 'write_global') end
end
Game.write_mods()
Game.write_surfaces()
Game.write_statistics()
game.print('Finished writing all data to script-output')
end
interface['merge_interfaces'] = function(tab)
Table.merge(interface, tab, false)
return interface
end
return interface