if color.alpha == 255 then
self.colors = { hexColor(color) }
else
- self.colors = { "transparent" }
+ self.colors = {}
end
self.pixels = nil
end
script_file:write(self.id)
script_file:write("\n")
- script_file:write(table.concat(self.colors, " "))
- script_file:write("\n")
+ if #self.colors > 0 then
+ script_file:write(table.concat(self.colors, " "))
+ script_file:write("\n")
- if self.pixels then
- for y = 0, 4 do
- for x = 0, 4 do
- script_file:write(self.pixels[y * 5 + x + 1])
+ if self.pixels then
+ for y = 0, 4 do
+ for x = 0, 4 do
+ script_file:write(self.pixels[y * 5 + x + 1])
+ end
+ script_file:write("\n")
end
- script_file:write("\n")
end
+ else
+ script_file:write("transparent\n")
end
end
local previous_export_filename = sprite.properties(plugin_key).previous_export_filename
local previous_merge_filename = sprite.properties(plugin_key).previous_merge_filename
+ local previous_export_selected_only = sprite.properties(plugin_key).previous_export_selected_only
local previous_export_lofi = sprite.properties(plugin_key).previous_export_lofi
if previous_export_filename == nil then
local dlg = Dialog()
dlg:file{ id="script_filename", label="Output:", filename=previous_export_filename, filetypes=".txt", save=true }
dlg:file{ id="merge_filename", label="Merge script (optional):", filename=previous_merge_filename, filetypes=".txt" }
+ dlg:check{ id="selected_only", label="Export selected level(s) only", selected=previous_export_selected_only }
dlg:check{ id="lofi", label="Prototype export (layer colours)", selected=previous_export_lofi }
dlg:button{ id="confirm", text="Confirm" }
dlg:button{ id="cancel", text="Cancel" }
local tiles_w = math.floor(sprite.width / 5)
local tiles_h = math.floor(sprite.height / 5)
- for _, frame in ipairs(sprite.frames) do
+ local exported_frames = sprite.frames
+
+ if data.selected_only then
+ if app.range.isEmpty == false then
+ exported_frames = app.range.frames
+ else
+ exported_frames = { app.frame }
+ end
+ end
+
+ for _, frame in ipairs(exported_frames) do
local level_item = PuzzleScriptLevelItem:new()
levels_section:add_item(level_item)
level_item.width = tiles_w
level:map_to_legend(legend_section, legend_icons)
end
-
-
-
local layers_section = pz_file:get_section("COLLISIONLAYERS")
for _, layer in ipairs(sprite.layers) do
local layer_item = PuzzleScriptLayerItem:new()
end
end
--- for _, objects in pairs(layer_objects) do
--- for _, object in pairs(objects) do
--- local layer_item = PuzzleScriptLayerItem:new()
--- layers_section:add_item(layer_item)
--- layer_item.id = object.layer.name
--- end
--- end
-
-
--- for _, layer in ipairs(layers) do
--- if layer.isVisible and layer.parent == sprite then
-
-
-
---PuzzleScriptLegendMapping:new()
-
--- local layer_item = PuzzleScriptLayerItem:new()
--- layers_section:add_item(layer_item)
--- layer_item.id = layer.name
--- end
--- end
-
-
---legend stuff again after...
-
-
-
-- Merge after making everything else
pz_file:read(data.merge_filename)
local export_filename_changed = sprite.properties(plugin_key).previous_export_filename ~= data.script_filename
local merge_filename_changed = sprite.properties(plugin_key).previous_merge_filename ~= data.merge_filename
+ local selected_only_changed = sprite.properties(plugin_key).previous_export_selected_only ~= data.selected_only
local lofi_changed = sprite.properties(plugin_key).previous_export_lofi ~= data.lofi
- if export_filename_changed or merge_filename_changed or lofi_changed then
+ if export_filename_changed or merge_filename_changed or selected_only_changed or lofi_changed then
sprite.properties(plugin_key).previous_export_filename = data.script_filename
sprite.properties(plugin_key).previous_merge_filename = data.merge_filename
+ sprite.properties(plugin_key).previous_export_selected_only = data.selected_only
sprite.properties(plugin_key).previous_export_lofi = data.lofi
end
end