const fs = require('fs');
const path = require('path');
const TILED_DIR = path.join(__dirname, '../assets/tiled');
const ASSETS_ROOT = path.join(__dirname, '../assets');
// Configuration
const TMX_FILENAME = 'Faza1_Nova.tmx';
const TSX_FILENAME = 'Buildings.tsx';
const MAP_WIDTH = 80;
const MAP_HEIGHT = 80;
// Gather all images
const imageFiles = [];
const sourceDirs = ['buildings', 'terrain', 'props'];
let tileIdCounter = 0;
let tilesXml = '';
sourceDirs.forEach(dirName => {
const fullPath = path.join(ASSETS_ROOT, dirName);
if (fs.existsSync(fullPath)) {
const files = fs.readdirSync(fullPath);
files.forEach(file => {
if (file.toLowerCase().endsWith('.png')) {
// Determine relative path from assets/tiled/ to assets/dir/file
// assets/tiled -> assets/dir = ../dir
const relativePath = `../${dirName}/${file}`;
tilesXml += ` \n`;
tilesXml += ` \n`; // Let Tiled detect size
tilesXml += ` \n`;
tileIdCounter++;
}
});
}
});
// 1. Generate TSX (Tileset)
const tsxContent = `
${tilesXml}
`;
fs.writeFileSync(path.join(TILED_DIR, TSX_FILENAME), tsxContent);
console.log(`✅ Created tileset: ${TSX_FILENAME} with ${tileIdCounter} tiles.`);
// 2. Generate TMX (Map)
// Create empty CSV data (all zeros)
const csvData = new Array(MAP_WIDTH * MAP_HEIGHT).fill(0).join(',');
const tmxContent = `
`;
fs.writeFileSync(path.join(TILED_DIR, TMX_FILENAME), tmxContent);
console.log(`✅ Created map: ${TMX_FILENAME} (${MAP_WIDTH}x${MAP_HEIGHT}) linked to ${TSX_FILENAME}.`);