mirror of
https://github.com/misode/misode.github.io.git
synced 2026-04-23 07:10:41 +00:00
Add biome and feature generators
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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 => {
|
||||
|
||||
@@ -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')
|
||||
@@ -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 => {
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||
<link rel="stylesheet" href="../styles/global.css">
|
||||
<link rel="stylesheet" href="../styles/nodes.css">
|
||||
<link rel="stylesheet" href="<%= htmlWebpackPlugin.files.publicPath %>styles/global.css">
|
||||
<link rel="stylesheet" href="<%= htmlWebpackPlugin.files.publicPath %>styles/nodes.css">
|
||||
</head>
|
||||
<body style="visibility: hidden;">
|
||||
<div class="container">
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
{
|
||||
"title.home": "Minecraft Generators",
|
||||
"title.home": "Data Pack Generators",
|
||||
"title.loot-table": "Loot Table Generator",
|
||||
"title.predicate": "Predicate Generator",
|
||||
"title.advancement": "Advancement Generator",
|
||||
"title.dimension": "Dimension Generator",
|
||||
"title.dimension-type": "Dimension Type Generator",
|
||||
"title.worldgen/biome": "Biome Generator",
|
||||
"title.worldgen/feature": "Feature Generator",
|
||||
"title.sandbox": "Sandbox",
|
||||
"loot-table": "Loot Table",
|
||||
"predicate": "Predicate",
|
||||
"advancement": "Advancement",
|
||||
"dimension": "Dimension",
|
||||
"dimension-type": "Dimension Type",
|
||||
"worldgen/biome": "Worldgen Biome",
|
||||
"worldgen/feature": "Worldgen Feature",
|
||||
"sandbox": "Sandbox",
|
||||
"language": "Language",
|
||||
"reset": "Reset",
|
||||
|
||||
@@ -37,7 +37,7 @@ module.exports = (env, argv) => ({
|
||||
}
|
||||
}),
|
||||
new HtmlWebpackPlugin({
|
||||
title: 'Minecraft Generators',
|
||||
title: 'Data Pack Generators Minecraft',
|
||||
filename: 'index.html',
|
||||
template: 'src/index.html'
|
||||
}),
|
||||
@@ -67,8 +67,13 @@ module.exports = (env, argv) => ({
|
||||
template: 'src/index.html'
|
||||
}),
|
||||
new HtmlWebpackPlugin({
|
||||
title: 'Sandbox Generator Minecraft',
|
||||
filename: 'sandbox/index.html',
|
||||
title: 'Biome Generator Minecraft',
|
||||
filename: 'worldgen/biome/index.html',
|
||||
template: 'src/index.html'
|
||||
}),
|
||||
new HtmlWebpackPlugin({
|
||||
title: 'Feature Generator Minecraft',
|
||||
filename: 'worldgen/feature/index.html',
|
||||
template: 'src/index.html'
|
||||
})
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user