/* Dependencies */

const electron = require("electron");
const path = require("node:path");

/* Initialization */

let gameWindow;

/* Functions */

function createWindow() {
	if (gameWindow) return;

	gameWindow = new electron.BrowserWindow({
    	"width": 800,
    	"height": 450,
		"frame": false,
		"transparent": true,
		"backgroundColor": "#FFFFFFFF",
    	"webPreferences": {
      		"preload": path.join(__dirname, "preload.js"),
			"webgl": true
    	},
		"title": "XVoxel",
		"icon": path.join("assets", "images", "xvoxel.png"),
		"show": false
	});

	gameWindow.loadFile(path.join(__dirname, "index.html"));

	gameWindow.once("ready-to-show", function () {
		gameWindow.show();
	});
}

/* Events */

electron.app.on("ready", function (event) {
	createWindow();

	electron.app.on("activate", function () {
    	if (electron.BrowserWindow.getAllWindows().length === 0) createWindow();
	});
});

electron.app.on("window-all-closed", function () {
	if (process.platform !== "darwin") electron.app.quit();
});
