diff --git a/src/app/App.tsx b/src/app/App.tsx index a28779d1..87ba6582 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -19,6 +19,7 @@ export function App() { + diff --git a/src/app/contexts/Project.tsx b/src/app/contexts/Project.tsx index 324761da..3f503f64 100644 --- a/src/app/contexts/Project.tsx +++ b/src/app/contexts/Project.tsx @@ -129,7 +129,8 @@ export function getFilePath(file: ProjectFile) { } const gen = config.generators.find(g => g.id === file.type) if (!gen) { - throw new Error(`Cannot find generator of type ${file.type}`) + console.error(`Cannot find generator of type ${file.type}`) + return undefined } return `data/${namespace}/${gen.path ?? gen.id}/${id}` } diff --git a/src/app/pages/Home.tsx b/src/app/pages/Home.tsx index 6bfd6a20..62598025 100644 --- a/src/app/pages/Home.tsx +++ b/src/app/pages/Home.tsx @@ -15,6 +15,7 @@ export function Home({}: Props) { {config.generators.filter(g => !g.category).map(g => )} + diff --git a/src/app/pages/Project.tsx b/src/app/pages/Project.tsx index b6df91fd..1c51e15d 100644 --- a/src/app/pages/Project.tsx +++ b/src/app/pages/Project.tsx @@ -9,7 +9,10 @@ export function Project({}: Props) { const { locale } = useLocale() const { project, openFile } = useProject() useTitle(locale('title.project', project.name)) - const entries = useMemo(() => project.files.map(getFilePath), project.files) + const entries = useMemo(() => project.files.flatMap(f => { + const path = getFilePath(f) + return path ? [path] : [] + }), project.files) const selectFile = useCallback((entry: string) => { const [, namespace, type, ...id] = entry.split('/') diff --git a/src/config.json b/src/config.json index 6756e481..10c8dded 100644 --- a/src/config.json +++ b/src/config.json @@ -253,6 +253,50 @@ "schema": "flat_level_generator_preset", "minVersion": "1.19" }, + { + "id": "tag/block", + "url": "tags/block", + "category": "tags", + "path": "tags/blocks", + "schema": "block_tag" + }, + { + "id": "tag/entity_type", + "url": "tags/entity-type", + "category": "tags", + "path": "tags/entity_types", + "schema": "entity_type_tag" + }, + { + "id": "tag/fluid", + "url": "tags/fluid", + "category": "tags", + "path": "tags/fluids", + "schema": "fluid_tag" + }, + { + "id": "tag/game_event", + "url": "tags/game-event", + "category": "tags", + "path": "tags/game_events", + "schema": "game_event_tag", + "minVersion": "1.17" + }, + { + "id": "tag/item", + "url": "tags/item", + "category": "tags", + "path": "tags/items", + "schema": "item_tag" + }, + { + "id": "tag/worldgen/biome", + "url": "tags/biome", + "category": "tags", + "path": "tags/worldgen/biome", + "schema": "biome_tag", + "minVersion": "1.18.2" + }, { "id": "block_definition", "url": "assets/blockstate", diff --git a/src/locales/en.json b/src/locales/en.json index 895f898b..f28df0a2 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -80,6 +80,13 @@ "settings.fields.name": "Name", "share": "Share", "theme": "Theme", + "tag/block": "Block Tag", + "tag/entity_type": "Entity Type Tag", + "tag/fluid": "Fluid Tag", + "tag/game_event": "Game Event Tag", + "tag/item": "Item Tag", + "tag/worldgen/biome": "Biome Tag", + "tags": "Tags", "theme.dark": "Dark", "theme.light": "Light", "theme.system": "System",