From 7180cfeb7f14c469981001642e9b6acbdbcbf70c Mon Sep 17 00:00:00 2001 From: goynov Date: Wed, 6 Nov 2024 20:09:02 +0200 Subject: [PATCH] game object module --- backend/app/bl/GameObjectsManager.js | 4 +- .../controllers/api/GameObjectsController.js | 5 + result.json | 1 - src/App.vue | 6 +- src/components/AppFooter.vue | 2 +- src/components/AppHeader.vue | 4 +- src/components/Home.vue | 8 +- src/gameEngine/index.js | 46 ++++++-- src/layouts/default.vue | 4 - src/pages/game-objects/[[id]].vue | 103 ++++++++++++------ src/pages/game-objects/list.vue | 37 +++++-- src/plugins/api.js | 3 + src/plugins/index.js | 2 + src/plugins/lang.js | 7 +- src/plugins/params.js | 37 +++++++ vite.config.mjs | 2 +- 16 files changed, 201 insertions(+), 70 deletions(-) delete mode 100644 result.json create mode 100644 src/plugins/params.js diff --git a/backend/app/bl/GameObjectsManager.js b/backend/app/bl/GameObjectsManager.js index 4ef96b6..2507f23 100644 --- a/backend/app/bl/GameObjectsManager.js +++ b/backend/app/bl/GameObjectsManager.js @@ -117,7 +117,9 @@ class GameObjectsManager{ }else{ object.asset.type = 'single'; await fs.promises.copyFile(src, def + ext); - await this.addThumb(object, src); + if (['.jpg', '.png', '.webp'].includes(ext)){ + await this.addThumb(object, src); + } } } diff --git a/backend/controllers/api/GameObjectsController.js b/backend/controllers/api/GameObjectsController.js index daabf50..0ac9d17 100644 --- a/backend/controllers/api/GameObjectsController.js +++ b/backend/controllers/api/GameObjectsController.js @@ -42,6 +42,11 @@ class GameObjectsController{ res.json(object); }) + router.delete('/:id', async (req, res)=>{ + await gameObject.remove(req.params.id); + res.json({status: 'OK'}); + }) + app.webServer.xapp.use(this.route, router); } } diff --git a/result.json b/result.json deleted file mode 100644 index f2857b1..0000000 --- a/result.json +++ /dev/null @@ -1 +0,0 @@ -[{"comment":"/**\r\n * Application layer manager\r\n */","meta":{"range":[188,3908],"filename":"GameObjectsManager.js","lineno":11,"columnno":0,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000022","name":"GameObjectsManager","type":"ClassDeclaration","paramnames":[]}},"classdesc":"Application layer manager","name":"GameObjectsManager","longname":"GameObjectsManager","kind":"class","scope":"global"},{"comment":"/**\r\n * Plugin initializer\r\n * @param {App} app The Application\r\n */","meta":{"range":[333,3790],"filename":"GameObjectsManager.js","lineno":18,"columnno":4,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000027","name":"GameObjectsManager#init","type":"MethodDefinition","paramnames":["app"]},"vars":{"":null}},"description":"Plugin initializer","params":[{"type":{"names":["App"]},"description":"The Application","name":"app"}],"name":"init","longname":"GameObjectsManager#init","kind":"function","memberof":"GameObjectsManager","scope":"instance"},{"comment":"/**\r\n * Gets last asset Id from database\r\n * @returns {Number} Last Asset Id\r\n */","meta":{"range":[505,881],"filename":"GameObjectsManager.js","lineno":25,"columnno":8,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000041","name":"this.getLastId","type":"FunctionExpression","paramnames":[]},"vars":{"ag":"GameObjectsManager#getLastId~ag"}},"description":"Gets last asset Id from database","returns":[{"type":{"names":["Number"]},"description":"Last Asset Id"}],"name":"getLastId","longname":"GameObjectsManager#getLastId","kind":"function","memberof":"GameObjectsManager","scope":"instance"},{"comment":"/**\r\n * Creates a game object\r\n * @param {Context} ctx Request context\r\n * @param {GameObject} data Asset data\r\n */","meta":{"range":[1050,1359],"filename":"GameObjectsManager.js","lineno":44,"columnno":8,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000071","name":"this.create","type":"FunctionExpression","paramnames":["ctx","data"]},"vars":{"data.id":"data.id"}},"description":"Creates a game object","params":[{"type":{"names":["Context"]},"description":"Request context","name":"ctx"},{"type":{"names":["GameObject"]},"description":"Asset data","name":"data"}],"name":"create","longname":"GameObjectsManager#create","kind":"function","memberof":"GameObjectsManager","scope":"instance"},{"comment":"/**\r\n * Retrieves game object from database\r\n * @param {Number} id Game object ID\r\n * @returns {GameObject} The game object\r\n */","meta":{"range":[1541,1635],"filename":"GameObjectsManager.js","lineno":58,"columnno":8,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000123","name":"this.read","type":"FunctionExpression","paramnames":["id"]}},"description":"Retrieves game object from database","params":[{"type":{"names":["Number"]},"description":"Game object ID","name":"id"}],"returns":[{"type":{"names":["GameObject"]},"description":"The game object"}],"name":"read","longname":"GameObjectsManager#read","kind":"function","memberof":"GameObjectsManager","scope":"instance"},{"comment":"/**\r\n * Updates game object into the database\r\n * @param {Context} ctx Request context\r\n * @param {GameObject} data Game object\r\n */","meta":{"range":[1821,1935],"filename":"GameObjectsManager.js","lineno":67,"columnno":8,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000141","name":"this.update","type":"FunctionExpression","paramnames":["ctx","data"]}},"description":"Updates game object into the database","params":[{"type":{"names":["Context"]},"description":"Request context","name":"ctx"},{"type":{"names":["GameObject"]},"description":"Game object","name":"data"}],"name":"update","longname":"GameObjectsManager#update","kind":"function","memberof":"GameObjectsManager","scope":"instance"},{"comment":"/**\r\n * Removes game object from database\r\n * @param {Number} id Game object ID\r\n */","meta":{"range":[2065,2157],"filename":"GameObjectsManager.js","lineno":75,"columnno":8,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000163","name":"this.remove","type":"FunctionExpression","paramnames":["id"]}},"description":"Removes game object from database","params":[{"type":{"names":["Number"]},"description":"Game object ID","name":"id"}],"name":"remove","longname":"GameObjectsManager#remove","kind":"function","memberof":"GameObjectsManager","scope":"instance"},{"comment":"/**\r\n * Assigns a file to a game object\r\n * @param {GameObject} object Game object\r\n * @param {File} tmpFile A file\r\n */","meta":{"range":[2331,3104],"filename":"GameObjectsManager.js","lineno":84,"columnno":8,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000181","name":"this.addFile","type":"FunctionExpression","paramnames":["object","tmpFile"]},"vars":{"i":"GameObjectsManager#addFile~i","ofn":"GameObjectsManager#addFile~ofn","ext":"GameObjectsManager#addFile~ext","src":"GameObjectsManager#addFile~src","def":"GameObjectsManager#addFile~def","object.file":"object.file","result":"GameObjectsManager#addFile~result","object.file.assets":"object.file.assets","":null}},"description":"Assigns a file to a game object","params":[{"type":{"names":["GameObject"]},"description":"Game object","name":"object"},{"type":{"names":["File"]},"description":"A file","name":"tmpFile"}],"name":"addFile","longname":"GameObjectsManager#addFile","kind":"function","memberof":"GameObjectsManager","scope":"instance"},{"comment":"/**\r\n * Assigns a thumbnail to a game object\r\n * @param {GameObject} object Game object\r\n * @param {File} thumbSrc A thumbnail\r\n */","meta":{"range":[3289,3528],"filename":"GameObjectsManager.js","lineno":109,"columnno":8,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000320","name":"this.addThumb","type":"FunctionExpression","paramnames":["object","thumbSrc"]},"vars":{"dest":"GameObjectsManager#addThumb~dest","object.file.thumb":"object.file.thumb"}},"description":"Assigns a thumbnail to a game object","params":[{"type":{"names":["GameObject"]},"description":"Game object","name":"object"},{"type":{"names":["File"]},"description":"A thumbnail","name":"thumbSrc"}],"name":"addThumb","longname":"GameObjectsManager#addThumb","kind":"function","memberof":"GameObjectsManager","scope":"instance"},{"comment":"/**\r\n * Returns list of GameObjects\r\n * @param {Object} query Query to DB \r\n * @returns {GameObject[]} Array of game objects\r\n */","meta":{"range":[3711,3783],"filename":"GameObjectsManager.js","lineno":120,"columnno":8,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000367","name":"this.list","type":"FunctionExpression","paramnames":["query"]}},"description":"Returns list of GameObjects","params":[{"type":{"names":["Object"]},"description":"Query to DB","name":"query"}],"returns":[{"type":{"names":["Array."]},"description":"Array of game objects"}],"name":"list","longname":"GameObjectsManager#list","kind":"function","memberof":"GameObjectsManager","scope":"instance"},{"comment":"/**\r\n * Class starter\r\n * @param {App} app The application\r\n */","meta":{"range":[3879,3905],"filename":"GameObjectsManager.js","lineno":129,"columnno":4,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000376","name":"GameObjectsManager#start","type":"MethodDefinition","paramnames":["app"]},"vars":{"":null}},"description":"Class starter","params":[{"type":{"names":["App"]},"description":"The application","name":"app"}],"name":"start","longname":"GameObjectsManager#start","kind":"function","memberof":"GameObjectsManager","scope":"instance","async":true},{"comment":"/**\r\n * GameObject entity\r\n */","meta":{"range":[3944,4089],"filename":"GameObjectsManager.js","lineno":137,"columnno":0,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000381","name":"GameObject","type":"ClassDeclaration","paramnames":[]}},"classdesc":"GameObject entity","name":"GameObject","longname":"GameObject","kind":"class","scope":"global"},{"comment":"/**\r\n * Game object name\r\n * @type string\r\n */","meta":{"range":[4032,4044],"filename":"GameObjectsManager.js","lineno":142,"columnno":4,"path":"D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl","code":{"id":"astnode100000384","name":"name","type":"ClassProperty"}},"description":"Game object name","type":{"names":["string"]},"name":"name","longname":"GameObject#name","kind":"member","memberof":"GameObject","scope":"instance"},{"kind":"package","longname":"package:undefined","files":["D:\\IMI\\ProNature\\pronature-platform\\backend\\app\\bl\\GameObjectsManager.js"]}] \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index 660483f..ab8088f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,11 +1,9 @@ diff --git a/src/components/AppFooter.vue b/src/components/AppFooter.vue index e0d6cec..b3581a3 100644 --- a/src/components/AppFooter.vue +++ b/src/components/AppFooter.vue @@ -1,5 +1,5 @@ diff --git a/src/components/AppHeader.vue b/src/components/AppHeader.vue index a0c786e..20e85d9 100644 --- a/src/components/AppHeader.vue +++ b/src/components/AppHeader.vue @@ -1,5 +1,5 @@