From 6dfa10ca50ae04675980fb610ae7ec30e328eb8f Mon Sep 17 00:00:00 2001 From: SanjarBLZK Date: Mon, 8 Sep 2025 15:05:55 +0200 Subject: [PATCH] Implement core engine functionality with configuration loading and game loop --- package.json | 8 ++++++-- src/index.js | 26 ++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 src/index.js diff --git a/package.json b/package.json index 9ad722c..b2ffde9 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "i-love-x-engine", "version": "1.0.0", "description": "Modulaire Electron game engine voor spelshows", - "main": "main.js", + "main": "main.js", "directories": { "doc": "docs", "test": "tests" @@ -15,7 +15,11 @@ "type": "git", "url": "https://git.pack.house/adamdaghmah/i-love-x-engine" }, - "keywords": ["electron", "game-engine", "spelshow"], + "keywords": [ + "electron", + "game-engine", + "spelshow" + ], "author": "", "license": "ISC", "devDependencies": { diff --git a/src/index.js b/src/index.js new file mode 100644 index 0000000..d4097de --- /dev/null +++ b/src/index.js @@ -0,0 +1,26 @@ +const ConfigLoader = require('./core/config-loader'); +const AssetManager = require('./core/asset-manager'); +const EventBus = require('./core/event-bus'); +const GameLoop = require('./core/game-loop'); + +// Config pad kan via argumenten komen, standaard default.json +const configPath = process.argv[2] || '../configs/default.json'; +const config = ConfigLoader.load(configPath); + +const assetManager = new AssetManager(config.assetsDir || '../assets/default'); +assetManager.loadAssets(); + +const eventBus = new EventBus(); + +const gameLoop = new GameLoop({ + onUpdate: () => { + // Hier komt de game logica per tick + console.log('Game update'); + }, + onEnd: () => { + console.log('Game ended'); + } +}); + +console.log('Engine gestart met config:', configPath); +gameLoop.start();