From 55009a85a56ce8814d588589fdb38723fe789d36 Mon Sep 17 00:00:00 2001 From: Sebastian Hartte Date: Sun, 13 Aug 2023 20:35:50 +0200 Subject: [PATCH] Add support for selecting the development version separately. --- src/InitialGuideSelection.tsx | 9 ++++++--- .../version-select/GuideVersionSelection.tsx | 15 +++++++++++++-- src/data/GuideVersionIndex.ts | 1 + worker/update-asset-index.mjs | 7 +++++-- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/InitialGuideSelection.tsx b/src/InitialGuideSelection.tsx index 4019639..1c4245e 100644 --- a/src/InitialGuideSelection.tsx +++ b/src/InitialGuideSelection.tsx @@ -21,10 +21,13 @@ function getSelectedGuideVersion( return undefined; } const gameVersion = m[1]; + let version: GuideVersion | undefined; + if (gameVersion === "development") { + version = versionIndex.versions.find((v) => v.development); + } else { + version = versionIndex.versions.find((v) => v.gameVersion === gameVersion); + } - const version = versionIndex.versions.find( - (v) => v.gameVersion === gameVersion - ); if (!version) { console.info("Unknown game version found in fragment: '%s'", gameVersion); } diff --git a/src/components/version-select/GuideVersionSelection.tsx b/src/components/version-select/GuideVersionSelection.tsx index a651bc0..adfee0d 100644 --- a/src/components/version-select/GuideVersionSelection.tsx +++ b/src/components/version-select/GuideVersionSelection.tsx @@ -8,15 +8,26 @@ type GuideVersionSelectionProps = { versionIndex: GuideVersionIndex; }; +function getBaseUrl(version: GuideVersion): string { + if (version.development) { + return "#/development/"; + } else { + return "#/" + version.gameVersion + "/"; + } +} + function GuideVersion({ version }: { version: GuideVersion }) { const lastUpdate = new Date(version.generated); return ( - +
{version.gameVersion}
-

Applied Energistics 2 {version.modVersion}

+

+ Applied Energistics 2 {version.modVersion} + {version.development ? " (Development)" : null} +

Last Updated: {lastUpdate.toLocaleDateString()}
); diff --git a/src/data/GuideVersionIndex.ts b/src/data/GuideVersionIndex.ts index 2b47664..1723935 100644 --- a/src/data/GuideVersionIndex.ts +++ b/src/data/GuideVersionIndex.ts @@ -6,6 +6,7 @@ export type GuideVersion = { modVersion: string; generated: number; url: string; + development: boolean; }; export type GuideVersionIndex = { diff --git a/worker/update-asset-index.mjs b/worker/update-asset-index.mjs index c0522a5..d375121 100644 --- a/worker/update-asset-index.mjs +++ b/worker/update-asset-index.mjs @@ -11,7 +11,9 @@ export default { const versions = []; for (const prefix of response.delimitedPrefixes) { - if (!prefix.match(/^minecraft-([^/]+)\/$/)) { + const devVersion = prefix === "development/"; + + if (!prefix.match(/^minecraft-([^/]+)\/$/) && !devVersion) { continue; } const indexFile = prefix + 'index.json'; @@ -31,7 +33,8 @@ export default { gameVersion: versionIndexContent.gameVersion, modVersion: versionIndexContent.modVersion, // This is where the actual data lives in V1 guides - url: 'https://guide-assets.appliedenergistics.org/' + indexFile + url: 'https://guide-assets.appliedenergistics.org/' + indexFile, + development: devVersion }) } catch (e) { console.error("Failed to process index file %s", indexFile);