diff --git a/package.json b/package.json index 6344440a..81c53960 100644 --- a/package.json +++ b/package.json @@ -12,8 +12,8 @@ "author": "Misode", "license": "MIT", "dependencies": { - "@mcschema/core": "^0.3.0", - "@mcschema/java-1.16": "^0.1.1", + "@mcschema/core": "^0.3.1", + "@mcschema/java-1.16": "^0.1.2", "@types/split.js": "^1.4.0", "copy-webpack-plugin": "^6.0.1", "html-webpack-plugin": "^4.3.0", diff --git a/src/app/RegistryFetcher.ts b/src/app/RegistryFetcher.ts index 3aad47a5..a0e7cf2e 100644 --- a/src/app/RegistryFetcher.ts +++ b/src/app/RegistryFetcher.ts @@ -1,6 +1,8 @@ import { CollectionRegistry } from '@mcschema/core' -export const mcdata = (version: string, registry: string) => `https://raw.githubusercontent.com/Arcensoth/mcdata/${version}/processed/reports/registries/${registry}/${registry}.min.json` +export const mcdata = (version: string, registry: string) => { + return `https://raw.githubusercontent.com/Arcensoth/mcdata/${version}/processed/reports/registries/${registry}/${registry.split('/').pop()}.min.json` +} export const RegistryFetcher = async (target: CollectionRegistry, registries: string[], version = 'master') => { await Promise.all(registries.map(async r => { diff --git a/src/app/Sandbox.ts b/src/app/Sandbox.ts deleted file mode 100644 index c92a1834..00000000 --- a/src/app/Sandbox.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { - StringNode, - BooleanNode, - EnumNode, - NumberNode, - ObjectNode, - ListNode, - MapNode, - Switch, - Case, - Reference, - JsonNode, - RangeNode, - Resource, - SCHEMAS -} from '@mcschema/core' - -SCHEMAS.register('foo', ObjectNode({ - foo: StringNode(), - bar: BooleanNode({ radio: true }), - nested: ObjectNode({ - baz: NumberNode({ min: 1 }), - range: RangeNode() - }, { collapse: true }), - arr: ListNode( - ObjectNode({ - aaa: StringNode(), - bbb: JsonNode() - }) - ), - map: MapNode( - EnumNode(['pig', 'sheep'], 'pig'), - Resource(StringNode()) - ), - recursive: ListNode( - Reference('foo') - ), - [Switch]: path => path.push('foo'), - [Case]: { - 'blah': { - haha: StringNode() - } - } -})) - -export const SandboxSchema = SCHEMAS.get('foo') diff --git a/src/app/app.ts b/src/app/app.ts index 2e7081b1..7284b039 100644 --- a/src/app/app.ts +++ b/src/app/app.ts @@ -11,7 +11,6 @@ import { } from '@mcschema/core' import { schemas } from '@mcschema/java-1.16' import { RegistryFetcher } from './RegistryFetcher' -import { SandboxSchema } from './Sandbox' import { ErrorsView } from './ErrorsView' const LOCAL_STORAGE_THEME = 'theme' @@ -19,7 +18,7 @@ const LOCAL_STORAGE_LANGUAGE = 'language' const publicPath = process.env.NODE_ENV === 'production' ? '/dev/' : '/'; -const modelFromPath = (p: string) => p.split('/').filter(e => e.length !== 0).pop() ?? '' +const modelFromPath = (p: string) => p.replace(publicPath, '').replace(/\/$/, '') const addChecked = (el: HTMLElement) => { el.classList.add('check') @@ -41,13 +40,12 @@ const models: { [key: string]: DataModel } = { 'advancement': new DataModel(schemas['advancement']), 'dimension': new DataModel(schemas['dimension']), 'dimension-type': new DataModel(schemas['dimension-type']), - 'sandbox': new DataModel(SandboxSchema) + 'worldgen/biome': new DataModel(schemas['biome']), + 'worldgen/feature': new DataModel(schemas['feature']) } const registries = [ 'attribute', - 'biome', - 'biome_source', 'block', 'enchantment', 'entity_type', @@ -58,7 +56,11 @@ const registries = [ 'loot_pool_entry_type', 'mob_effect', 'stat_type', - 'structure_feature' + 'worldgen/biome_source', + 'worldgen/carver', + 'worldgen/decorator', + 'worldgen/feature', + 'worldgen/surface_builder' ] const treeViewObserver = (el: HTMLElement) => { @@ -127,15 +129,19 @@ Promise.all([ ]).then(responses => { let selected = '' + Object.values(models).forEach(m => m.validate(true)) const updateModel = () => { + let title = '' if (models[selected] === undefined) { - selectedModel.textContent = locale(`title.home`) + title = locale(`title.home`) } else { - selectedModel.textContent = locale(`title.${selected}`) + title = locale(`title.${selected}`) Object.values(views).forEach(v => v.setModel(models[selected])) models[selected].invalidate() } + selectedModel.textContent = title + document.title = title modelSelectorMenu.innerHTML = '' Object.keys(models).forEach(m => { diff --git a/src/index.html b/src/index.html index 1299212f..d1307f41 100644 --- a/src/index.html +++ b/src/index.html @@ -4,8 +4,8 @@