Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathexport_plugin.lua
More file actions
Latest commit
73 lines (66 loc) · 2.99 KB
/
Copy pathexport_plugin.lua
File metadata and controls
73 lines (66 loc) · 2.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
-- @file plugin/export_plugin.lua EditorExportPlugin for minifying Lua scripts on release exports
-- This file is part of Godot Lua PluginScript: https://github.com/gilzoide/godot-lua-pluginscript
--
-- Copyright (C) 2021-2023 Gil Barbosa Reis.
--
-- Permission is hereby granted, free of charge, to any person obtaining a copy
-- of this software and associated documentation files (the “Software”), to
-- deal in the Software without restriction, including without limitation the
-- rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-- sell copies of the Software, and to permit persons to whom the Software is
-- furnished to do so, subject to the following conditions:
--
-- The above copyright notice and this permission notice shall be included in
-- all copies or substantial portions of the Software.
--
-- THE SOFTWARE 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 OR COPYRIGHT HOLDERS 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.
localpackage_path=package.path
package.path='res://addons/godot-lua-pluginscript/plugin/?.lua;res://addons/godot-lua-pluginscript/plugin/?/init.lua;' ..package_path
localluasrcdiet=require'luasrcdiet'
package.path=package_path
localLuaExportPlugin= {
is_tool=true,
extends='EditorExportPlugin',
}
localSHOULD_MINIFY_RELEASE_SETTING='lua_pluginscript/export/minify_on_release_export'
localfunctionadd_project_setting(name, initial_value)
ifnotProjectSettings:has_setting(name) then
ProjectSettings:set_setting(name, initial_value)
end
ProjectSettings:set_initial_value(name, initial_value)
end
add_project_setting(SHOULD_MINIFY_RELEASE_SETTING, true)
functionLuaExportPlugin:_export_begin(features, is_debug, path, flags)
self.ignore_path=self:get_script().resource_path:get_base_dir()
self.should_minify=notis_debugandProjectSettings:get_setting(SHOULD_MINIFY_RELEASE_SETTING)
self.file=File:new()
end
functionLuaExportPlugin:_export_file(path, type, features)
ifpath:begins_with(self.ignore_path) then
self:skip()
elseifself.should_minifyandpath:ends_with('.lua') then
ifself.file:open(path, File.READ) ==GD.OKthen
localsource=tostring(self.file:get_as_text())
self.file:close()
localoptsource=luasrcdiet.optimize(luasrcdiet.MAXIMUM_OPTS, source)
print(string.format('[LuaPluginScript] Minified %s: %s -> %s (%d%% reduction)',
path,
String.humanize_size(#source),
String.humanize_size(#optsource),
100-math.floor(#optsource/#source*100))
)
self:add_file(path, PoolByteArray.from(optsource), false)
end
end
end
functionLuaExportPlugin:_export_end()
self.ignore_path=nil
self.file=nil
end
returnLuaExportPlugin