diff --git a/.gitignore b/.gitignore
old mode 100755
new mode 100644
diff --git a/src/components/publics/PublicPreview.svelte b/src/components/publics/PublicPreview.svelte
index 503540c..8934b83 100644
--- a/src/components/publics/PublicPreview.svelte
+++ b/src/components/publics/PublicPreview.svelte
@@ -22,8 +22,9 @@
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
import { OrbitControls } from "three/addons/controls/OrbitControls.js";
import {onDestroy, onMount} from "svelte";
+ import { CollectionEntry } from "astro:content";
- export let file: string;
+ export let pub: CollectionEntry<"publics">;
export let fov: number = 60;
export let near: number = 1
export let far: number = 1000;
@@ -40,6 +41,10 @@
let observer: ResizeObserver;
onMount(() => {
+ if (!pub.data["3d"]) {
+ return;
+ }
+
scene = new THREE.Scene();
scene.background = new THREE.Color(0x171717);
camera = new THREE.PerspectiveCamera(fov, 1, near, far);
@@ -52,8 +57,8 @@
const loader = new GLTFLoader();
- loader.load(`/3d/${file}.glb`, (gltf) => {
- let s = scene.add(gltf.scene);
+ loader.load(`/3d/${pub.id}.glb`, (gltf) => {
+ scene.add(gltf.scene);
let cube_bbox = new THREE.Box3();
cube_bbox.setFromObject(gltf.scene);
@@ -64,7 +69,9 @@
camera.position.set(0, center.y, distance);
controls.update();
- }, undefined, console.log);
+ }, undefined, (e) => {
+ console.error(e);
+ });
div.append(renderer.domElement);
diff --git a/src/components/publics/XRayPreview.svelte b/src/components/publics/XRayPreview.svelte
index b458e98..1676343 100644
--- a/src/components/publics/XRayPreview.svelte
+++ b/src/components/publics/XRayPreview.svelte
@@ -20,29 +20,19 @@
-
+
diff --git a/src/content/config.ts b/src/content/config.ts
index ff45259..048b28c 100644
--- a/src/content/config.ts
+++ b/src/content/config.ts
@@ -97,6 +97,7 @@ export const publics = defineCollection({
"image": image(),
"xray": image().optional(),
"gamemode": reference("modes"),
+ "3d": z.boolean().optional().default(true),
}),
});
diff --git a/src/content/publics/frostbite.json b/src/content/publics/frostbite.json
index 95e8c1b..9379724 100644
--- a/src/content/publics/frostbite.json
+++ b/src/content/publics/frostbite.json
@@ -4,6 +4,6 @@
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "wargear",
- "image": "../../images/area_render_2_.png",
- "xray": "../../images/area_render_1_.png"
+ "image": "../../images/publics/frostbite/area_render_2_.png",
+ "xray": "../../images/publics/frostbite/area_render_1_.png"
}
\ No newline at end of file
diff --git a/src/content/publics/ghostleviathan.json b/src/content/publics/ghostleviathan.json
new file mode 100644
index 0000000..0765447
--- /dev/null
+++ b/src/content/publics/ghostleviathan.json
@@ -0,0 +1,9 @@
+{
+ "name": "GhostLeviathan",
+ "description": "A simple, lightweight description of a GhostLeviathan.",
+ "id": 789,
+ "creator": ["Test", "Test2"],
+ "gamemode": "wargear",
+ "image": "../../images/publics/ghostleviathan/area_render_9_.png",
+ "3d": false
+}
\ No newline at end of file
diff --git a/src/content/publics/lilith.json b/src/content/publics/lilith.json
new file mode 100644
index 0000000..14110fb
--- /dev/null
+++ b/src/content/publics/lilith.json
@@ -0,0 +1,9 @@
+{
+ "name": "Lilith",
+ "description": "A simple, lightweight description of a Lilith.",
+ "id": 456,
+ "creator": ["Test", "Test2"],
+ "gamemode": "wargear",
+ "image": "../../images/publics/lilith/area_render_11_.png",
+ "3d": false
+}
\ No newline at end of file
diff --git a/src/content/publics/warpedowl.json b/src/content/publics/warpedowl.json
new file mode 100644
index 0000000..465858e
--- /dev/null
+++ b/src/content/publics/warpedowl.json
@@ -0,0 +1,9 @@
+{
+ "name": "WarpedOwl",
+ "description": "A simple, lightweight description of a WarpedOwl.",
+ "id": 456,
+ "creator": ["Test", "Test2"],
+ "gamemode": "wargear",
+ "image": "../../images/publics/warpedowl/area_render_12_.png",
+ "3d": false
+}
\ No newline at end of file
diff --git a/src/images/2024-03-24_20.59.03.png b/src/images/publics/frostbite/2024-03-24_20.59.03.png
similarity index 100%
rename from src/images/2024-03-24_20.59.03.png
rename to src/images/publics/frostbite/2024-03-24_20.59.03.png
diff --git a/src/images/2024-03-24_20.59.59.png b/src/images/publics/frostbite/2024-03-24_20.59.59.png
similarity index 100%
rename from src/images/2024-03-24_20.59.59.png
rename to src/images/publics/frostbite/2024-03-24_20.59.59.png
diff --git a/src/images/area_render_1_.png b/src/images/publics/frostbite/area_render_1_.png
similarity index 100%
rename from src/images/area_render_1_.png
rename to src/images/publics/frostbite/area_render_1_.png
diff --git a/src/images/area_render_2_.png b/src/images/publics/frostbite/area_render_2_.png
similarity index 100%
rename from src/images/area_render_2_.png
rename to src/images/publics/frostbite/area_render_2_.png
diff --git a/src/images/publics/ghostleviathan/area_render_9_.png b/src/images/publics/ghostleviathan/area_render_9_.png
new file mode 100644
index 0000000..bb20d5d
Binary files /dev/null and b/src/images/publics/ghostleviathan/area_render_9_.png differ
diff --git a/src/images/publics/lilith/area_render_11_.png b/src/images/publics/lilith/area_render_11_.png
new file mode 100644
index 0000000..d82109b
Binary files /dev/null and b/src/images/publics/lilith/area_render_11_.png differ
diff --git a/src/images/publics/warpedowl/area_render_12_.png b/src/images/publics/warpedowl/area_render_12_.png
new file mode 100644
index 0000000..5b77837
Binary files /dev/null and b/src/images/publics/warpedowl/area_render_12_.png differ
diff --git a/src/pages/publics/[schem].astro b/src/pages/publics/[schem].astro
index 2f88ecb..4dbd979 100644
--- a/src/pages/publics/[schem].astro
+++ b/src/pages/publics/[schem].astro
@@ -23,8 +23,8 @@ const { schem }: { schem: CollectionEntry<"publics">} = Astro.props;
{schem.data.name}
-
-
+
+
{schem.data.description}
diff --git a/src/pages/publics/index.astro b/src/pages/publics/index.astro
index e3f3da6..b93d0c5 100644
--- a/src/pages/publics/index.astro
+++ b/src/pages/publics/index.astro
@@ -5,25 +5,30 @@ import {l} from "../../util/util";
import { Image } from "astro:assets";
import Card from "@components/Card.svelte";
import XRayPreview from "@components/publics/XRayPreview.svelte";
+import {t} from "astro-i18n";
+const gamemodes = await getCollection("modes");
const publics = await getCollection("publics");
---
-
+ {gamemodes.filter(value => publics.map(value1 => value1.data.gamemode.id).includes(value.id)).map((gamemode) => (
+ {t(`${gamemode.data.translationKey}.title`)}
+
+ ))}