From b52341df4568f87026459b919ffdc121db158419 Mon Sep 17 00:00:00 2001 From: shawticus Date: Sun, 7 Aug 2022 07:02:17 -0700 Subject: [PATCH 1/2] add scenesettings --- plugins/rollup.js | 4 +++- type_templates/scenesettings.js | 39 +++++++++++++++++++++++++++++++++ types/scenesettings.js | 32 +++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 1 deletion(-) create mode 100644 type_templates/scenesettings.js create mode 100644 types/scenesettings.js diff --git a/plugins/rollup.js b/plugins/rollup.js index a39f584..0feba66 100644 --- a/plugins/rollup.js +++ b/plugins/rollup.js @@ -35,6 +35,7 @@ const light = require('../types/light.js'); const text = require('../types/text.js'); //const fog = require('../types/fog.js'); // const background = require('../types/background.js'); +const scenesettings = require('../types/scenesettings.js'); const rendersettings = require('../types/rendersettings.js'); const spawnpoint = require('../types/spawnpoint.js'); const wind = require('../types/wind.js'); @@ -66,6 +67,7 @@ const loaders = { // fog, // background, rendersettings, + scenesettings, spawnpoint, lore, quest, @@ -92,7 +94,7 @@ const _getType = id => { } let extension; let match2; - if (match2 = type.match(/^application\/(light|text|rendersettings|spawnpoint|lore|quest|npc|mob|react|group|wind)$/)) { + if (match2 = type.match(/^application\/(light|text|rendersettings|scenesettings|spawnpoint|lore|quest|npc|mob|react|group|wind)$/)) { extension = match2[1]; } else if (match2 = type.match(/^application\/(javascript)$/)) { extension = 'js'; diff --git a/type_templates/scenesettings.js b/type_templates/scenesettings.js new file mode 100644 index 0000000..7385566 --- /dev/null +++ b/type_templates/scenesettings.js @@ -0,0 +1,39 @@ +// import * as THREE from 'three'; +import metaversefile from 'metaversefile'; +const {useApp, useSceneSettingsManager, useCleanup} = metaversefile; + +export default e => { + const app = useApp(); + console.log('creating scene settings app'); + const sceneSettings = useSceneSettingsManager(); + + console.log('sceneSettings', sceneSettings) + + const srcUrl = ${this.srcUrl}; + + let live = true; + let json = null; + let localSceneSettings = null; + (async () => { + const res = await fetch(srcUrl); + if (!live) return; + json = await res.json(); + console.log('json is', json) + if (!live) return; + localSceneSettings = sceneSettings.makeSceneSettings(json); + })(); + + useCleanup(() => { + live = false; + localSceneSettings = null; + }); + + app.getSceneSettings = () => localSceneSettings; + + return app; +}; +export const contentId = ${this.contentId}; +export const name = ${this.name}; +export const description = ${this.description}; +export const type = 'scenesettings'; +export const components = ${this.components}; \ No newline at end of file diff --git a/types/scenesettings.js b/types/scenesettings.js new file mode 100644 index 0000000..ea63548 --- /dev/null +++ b/types/scenesettings.js @@ -0,0 +1,32 @@ +const path = require('path'); +const fs = require('fs'); +const {fillTemplate, createRelativeFromAbsolutePath, parseIdHash} = require('metaversefile/util.js'); + +const templateString = fs.readFileSync(path.join(__dirname, '..', 'type_templates', 'scenesettings.js'), 'utf8'); + +module.exports = { + load(id) { + + id = createRelativeFromAbsolutePath(id); + + const { + contentId, + name, + description, + components, + } = parseIdHash(id); + + const code = fillTemplate(templateString, { + srcUrl: JSON.stringify(id), + contentId: JSON.stringify(contentId), + name: JSON.stringify(name), + description: JSON.stringify(description), + components: JSON.stringify(components), + }); + console.log('code is', code); + return { + code, + map: null, + }; + }, +}; \ No newline at end of file From 9278530fc5a95c185e7d91558828bb3f3299d048 Mon Sep 17 00:00:00 2001 From: shawticus Date: Fri, 12 Aug 2022 18:44:36 -0700 Subject: [PATCH 2/2] scenesettings -> gamesettings --- plugins/rollup.js | 6 +++--- .../{scenesettings.js => gamesettings.js} | 17 +++++++---------- types/{scenesettings.js => gamesettings.js} | 2 +- 3 files changed, 11 insertions(+), 14 deletions(-) rename type_templates/{scenesettings.js => gamesettings.js} (56%) rename types/{scenesettings.js => gamesettings.js} (90%) diff --git a/plugins/rollup.js b/plugins/rollup.js index 0feba66..12aa12e 100644 --- a/plugins/rollup.js +++ b/plugins/rollup.js @@ -35,7 +35,7 @@ const light = require('../types/light.js'); const text = require('../types/text.js'); //const fog = require('../types/fog.js'); // const background = require('../types/background.js'); -const scenesettings = require('../types/scenesettings.js'); +const gamesettings = require('../types/gamesettings.js'); const rendersettings = require('../types/rendersettings.js'); const spawnpoint = require('../types/spawnpoint.js'); const wind = require('../types/wind.js'); @@ -67,7 +67,7 @@ const loaders = { // fog, // background, rendersettings, - scenesettings, + gamesettings, spawnpoint, lore, quest, @@ -94,7 +94,7 @@ const _getType = id => { } let extension; let match2; - if (match2 = type.match(/^application\/(light|text|rendersettings|scenesettings|spawnpoint|lore|quest|npc|mob|react|group|wind)$/)) { + if (match2 = type.match(/^application\/(light|text|rendersettings|gamesettings|spawnpoint|lore|quest|npc|mob|react|group|wind)$/)) { extension = match2[1]; } else if (match2 = type.match(/^application\/(javascript)$/)) { extension = 'js'; diff --git a/type_templates/scenesettings.js b/type_templates/gamesettings.js similarity index 56% rename from type_templates/scenesettings.js rename to type_templates/gamesettings.js index 7385566..f84756e 100644 --- a/type_templates/scenesettings.js +++ b/type_templates/gamesettings.js @@ -1,39 +1,36 @@ // import * as THREE from 'three'; import metaversefile from 'metaversefile'; -const {useApp, useSceneSettingsManager, useCleanup} = metaversefile; +const {useApp, useGameSettingsManager, useCleanup} = metaversefile; export default e => { const app = useApp(); - console.log('creating scene settings app'); - const sceneSettings = useSceneSettingsManager(); - - console.log('sceneSettings', sceneSettings) + const gameSettings = useGameSettingsManager(); const srcUrl = ${this.srcUrl}; let live = true; let json = null; - let localSceneSettings = null; + let localGameSettings = null; (async () => { const res = await fetch(srcUrl); if (!live) return; json = await res.json(); console.log('json is', json) if (!live) return; - localSceneSettings = sceneSettings.makeSceneSettings(json); + localGameSettings = gameSettings.makeGameSettings(json); })(); useCleanup(() => { live = false; - localSceneSettings = null; + localGameSettings = null; }); - app.getSceneSettings = () => localSceneSettings; + app.getGameSettings = () => localGameSettings; return app; }; export const contentId = ${this.contentId}; export const name = ${this.name}; export const description = ${this.description}; -export const type = 'scenesettings'; +export const type = 'gamesettings'; export const components = ${this.components}; \ No newline at end of file diff --git a/types/scenesettings.js b/types/gamesettings.js similarity index 90% rename from types/scenesettings.js rename to types/gamesettings.js index ea63548..ced8d4f 100644 --- a/types/scenesettings.js +++ b/types/gamesettings.js @@ -2,7 +2,7 @@ const path = require('path'); const fs = require('fs'); const {fillTemplate, createRelativeFromAbsolutePath, parseIdHash} = require('metaversefile/util.js'); -const templateString = fs.readFileSync(path.join(__dirname, '..', 'type_templates', 'scenesettings.js'), 'utf8'); +const templateString = fs.readFileSync(path.join(__dirname, '..', 'type_templates', 'gamesettings.js'), 'utf8'); module.exports = { load(id) {