mirror of
https://github.com/Insality/druid.git
synced 2025-11-26 10:50:52 +01:00
60 lines
1.3 KiB
Lua
60 lines
1.3 KiB
Lua
local M = {}
|
|
|
|
function M.create_druid_collection(selection)
|
|
local gui_filepath = editor.get(selection, "path")
|
|
print("Create Druid Collection for", gui_filepath)
|
|
|
|
local absolute_project_path = editor.external_file_attributes(".").path
|
|
local collection_resource_path = gui_filepath:gsub("%.gui$", ".collection")
|
|
local new_collection_absolute_path = absolute_project_path .. collection_resource_path
|
|
|
|
local filename = gui_filepath:match("([^/]+)%.gui$")
|
|
|
|
-- Check if file already exists
|
|
local f = io.open(new_collection_absolute_path, "r")
|
|
if f then
|
|
f:close()
|
|
print("Collection file already exists at " .. new_collection_absolute_path)
|
|
return
|
|
end
|
|
|
|
-- Template content
|
|
local template = [[name: "%s"
|
|
scale_along_z: 0
|
|
embedded_instances {
|
|
id: "go"
|
|
data: "components {\n"
|
|
" id: \"%s\"\n"
|
|
" component: \"%s\"\n"
|
|
"}\n"
|
|
""
|
|
position {
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
}
|
|
rotation {
|
|
x: 0.0
|
|
y: 0.0
|
|
z: 0.0
|
|
w: 1.0
|
|
}
|
|
}
|
|
]]
|
|
local content = string.format(template, filename, filename, gui_filepath)
|
|
|
|
-- Write file
|
|
local file, err = io.open(new_collection_absolute_path, "w")
|
|
if not file then
|
|
print("Error creating collection file:", err)
|
|
return
|
|
end
|
|
file:write(content)
|
|
file:close()
|
|
|
|
print("Collection created: " .. collection_resource_path)
|
|
end
|
|
|
|
return M
|
|
|