generated from nem0/lumix_plugin_template
-
Notifications
You must be signed in to change notification settings - Fork 1
/
genie.lua
102 lines (83 loc) · 2.88 KB
/
genie.lua
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
local cfg_file
function createTextureMeta(path)
local mp = io.open(path, "w")
mp:write("srgb = true")
mp:close()
end
function createFBXMeta(path)
local mp = io.open(path, "w")
mp:write('origin = "bottom"')
mp:close()
end
local center_packages = { "kenney_city-kit-roads", "kenney_castle-kit", "kenney_pirate-kit", "kenney_racing-kit", "kenney_retro-urban-kit", "kenney_space-kit" }
function repackage_kenney(file)
printf("repacking " .. file .. "...")
local basename = path.getbasename(file)
os.mkdir("unpacked/" .. basename)
os.copyfile(file, "unpacked/" .. basename .. "/" .. file)
os.chdir("unpacked/" .. basename)
os.outputof("tar -xf " .. file)
local repacked_dir = "../../repacked/" .. basename .. "/";
local files = os.matchfiles("**.fbx")
if #files == 0 then
printf("Warning: No FBX files in " .. basename .. ", skipped.")
os.chdir("../..")
return
end
os.mkdir(repacked_dir)
local center_meshes = table.contains(center_packages, basename)
for _, v in pairs(files) do
os.copyfile(v, repacked_dir .. path.getbasename(v) .. ".fbx")
if center_meshes then
createFBXMeta(repacked_dir .. path.getbasename(v) .. ".fbx.meta")
end
end
os.copyfile("Preview.png", "../../repacked/" .. basename .. ".png")
os.rmdir("Side")
os.rmdir("Isometric")
os.rmdir("Topdown")
os.rmdir("Previews")
local files = os.matchfiles("**.png")
for _, v in pairs(files) do
if v ~= "Preview.png" and v ~= "Sample.png" then
os.copyfile(v, repacked_dir .. path.getbasename(v) .. ".png")
createTextureMeta(repacked_dir .. path.getbasename(v) .. ".png.meta")
end
end
os.chdir("../../repacked/" .. basename)
os.outputof("tar -a -c -f ../" .. basename .. ".zip *")
os.chdir("../..")
cfg_file:write("\t{\n")
cfg_file:write('\t\tname = "' .. basename .. '",\n')
cfg_file:write('\t\ttags = "model, lowpoly",\n')
cfg_file:write('\t\tpath = "https://raw.githubusercontent.com/nem0/lumixengine_market/master/data/kenney/' .. basename .. '.zip",\n')
cfg_file:write('\t\tthumbnail = "https://raw.githubusercontent.com/nem0/lumixengine_market/master/data/kenney/' .. basename .. '.png"\n')
cfg_file:write("\t},\n")
end
newaction {
trigger = "kenney",
description = "Repackage Kenney's assets for Lumix Engine",
execute = function()
local files = os.matchfiles("*.zip")
cfg_file = io.open("list.lua", "w")
cfg_file:write("{\n")
for _, v in pairs(files) do
repackage_kenney(v)
end
cfg_file:write("}\n")
cfg_file:close()
end
}
project "market"
libType()
files {
"src/**.c",
"src/**.cpp",
"src/**.h",
"genie.lua"
}
defines { "BUILDING_MARKET" }
links { "engine" }
useLua()
defaultConfigurations()
linkPlugin("market")