Add Public Images
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful

Dieser Commit ist enthalten in:
Chaoscaot 2024-08-13 19:14:26 +02:00
Ursprung 9d95da1fbe
Commit 530e0d9f19
53 geänderte Dateien mit 227 neuen und 12 gelöschten Zeilen

Datei anzeigen

@ -95,6 +95,7 @@ export const publics = defineCollection({
"distance": z.number().optional(), "distance": z.number().optional(),
}).optional(), }).optional(),
"image": image(), "image": image(),
"alt": image().optional(),
"xray": image().optional(), "xray": image().optional(),
"gamemode": reference("modes"), "gamemode": reference("modes"),
"3d": z.boolean().optional().default(true), "3d": z.boolean().optional().default(true),

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Bomber",
"description": "A simple, lightweight description of a TheScythe.",
"id": 456,
"creator": ["Team aaZ"],
"gamemode": "airship",
"image": "../../../images/publics/bomber/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Orion",
"description": "A simple, lightweight description of a TheScythe.",
"id": 456,
"creator": ["Team aaZ"],
"gamemode": "airship",
"image": "../../../images/publics/orion/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "StarCruiser",
"description": "A simple, lightweight description of a TheScythe.",
"id": 456,
"creator": ["Team aaZ"],
"gamemode": "airship",
"image": "../../../images/publics/starcruiser/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "The Countess",
"description": "A simple, lightweight description of a TheScythe.",
"id": 456,
"creator": ["Team aaZ"],
"gamemode": "airship",
"image": "../../../images/publics/thecountess/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "TheScythe",
"description": "A simple, lightweight description of a TheScythe.",
"id": 456,
"creator": ["Team aaZ"],
"gamemode": "airship",
"image": "../../../images/publics/thescythe/area_render_3_.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Black Knight",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "miniwargear",
"image": "../../../images/publics/blackknight/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Harvester",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "miniwargear",
"image": "../../../images/publics/harvester/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Inferno",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "miniwargear",
"image": "../../../images/publics/inferno/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Isegrim",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "miniwargear",
"image": "../../../images/publics/isegrim/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Naturgestein",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "miniwargear",
"image": "../../../images/publics/naturgestein/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "DPR PV1 Reaper",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "miniwargear",
"image": "../../../images/publics/reaper/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "ShadowMoses",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "miniwargear",
"image": "../../../images/publics/shadowmoses/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "SnowOwl",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "miniwargear",
"image": "../../../images/publics/snowowl/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "TheUnderground",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "miniwargear",
"image": "../../../images/publics/underground/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Haze",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "quickgear",
"image": "../../../images/publics/haze/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Hornet",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "quickgear",
"image": "../../../images/publics/hornet/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Undead Legion",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "quickgear",
"image": "../../../images/publics/undeadlegion/area_render.png",
"3d": false
}

Datei anzeigen

@ -4,6 +4,6 @@
"id": 123, "id": 123,
"creator": ["Test", "Test2"], "creator": ["Test", "Test2"],
"gamemode": "wargear", "gamemode": "wargear",
"image": "../../images/publics/frostbite/area_render_2_.png", "image": "../../../images/publics/frostbite/area_render_2_.png",
"xray": "../../images/publics/frostbite/area_render_1_.png" "xray": "../../../images/publics/frostbite/area_render_1_.png"
} }

Datei anzeigen

@ -4,6 +4,6 @@
"id": 789, "id": 789,
"creator": ["Test", "Test2"], "creator": ["Test", "Test2"],
"gamemode": "wargear", "gamemode": "wargear",
"image": "../../images/publics/ghostleviathan/area_render_9_.png", "image": "../../../images/publics/ghostleviathan/area_render_9_.png",
"3d": false "3d": false
} }

Datei anzeigen

@ -4,6 +4,6 @@
"id": 456, "id": 456,
"creator": ["Test", "Test2"], "creator": ["Test", "Test2"],
"gamemode": "wargear", "gamemode": "wargear",
"image": "../../images/publics/lilith/area_render_11_.png", "image": "../../../images/publics/lilith/area_render_11_.png",
"3d": false "3d": false
} }

Datei anzeigen

@ -4,6 +4,6 @@
"id": 456, "id": 456,
"creator": ["Test", "Test2"], "creator": ["Test", "Test2"],
"gamemode": "wargear", "gamemode": "wargear",
"image": "../../images/publics/warpedowl/area_render_12_.png", "image": "../../../images/publics/warpedowl/area_render_12_.png",
"3d": false "3d": false
} }

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Graf Spree",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "warship",
"image": "../../../images/publics/grafspree/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "SMS Helgoland",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "warship",
"image": "../../../images/publics/helgoland/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "USS Oklahoma",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "warship",
"image": "../../../images/publics/oklahoma/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "HMS Prince of Wales",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "warship",
"image": "../../../images/publics/princeofwales/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "SMS Storming",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "warship",
"image": "../../../images/publics/storming/area_render.png",
"3d": false
}

Datei anzeigen

@ -0,0 +1,9 @@
{
"name": "Stormy Hunter",
"description": "A simple, lightweight description of a frostbite.",
"id": 123,
"creator": ["Test", "Test2"],
"gamemode": "warship",
"image": "../../../images/publics/stormyhunter/area_render.png",
"3d": false
}

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 2.6 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 1006 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 1.3 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 2.5 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 3.5 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 1.5 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 2.0 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 2.6 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 3.7 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 3.7 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 1.8 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 743 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 1.9 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 2.0 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 3.7 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 3.4 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 711 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 2.6 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 2.3 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 1.1 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 738 KiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 2.6 MiB

Binäre Datei nicht angezeigt.

Nachher

Breite:  |  Höhe:  |  Größe: 3.6 MiB

Datei anzeigen

@ -24,7 +24,7 @@ const { schem }: { schem: CollectionEntry<"publics">} = Astro.props;
<PageLayout title={schem.data.name}> <PageLayout title={schem.data.name}>
<h1 class="text-5xl font-bold w-fit" transition:name={schem.data.id + "-title"}>{schem.data.name}</h1> <h1 class="text-5xl font-bold w-fit" transition:name={schem.data.id + "-title"}>{schem.data.name}</h1>
<PublicPreview client:idle pub={schem} imageHeight={schem.data.image.height}> <PublicPreview client:idle pub={schem} imageHeight={schem.data.image.height}>
<Image class="object-contain" transition:name={schem.data.id + "-img"} src={schem.data.image} alt={schem.data.name}></Image> <Image class="object-contain" transition:name={schem.data.id + "-img"} src={schem.data.alt || schem.data.image} alt={schem.data.name}></Image>
</PublicPreview> </PublicPreview>
<p transition:name={schem.data.id + "-desc"}>{schem.data.description}</p> <p transition:name={schem.data.id + "-desc"}>{schem.data.description}</p>
<p> <p>

Datei anzeigen

@ -8,15 +8,22 @@ import {getCollection} from "astro:content";
import PageLayout from "../../layouts/PageLayout.astro"; import PageLayout from "../../layouts/PageLayout.astro";
import {Image} from "astro:assets"; import {Image} from "astro:assets";
import {l} from "../../util/util"; import {l} from "../../util/util";
import {ImageMetadata} from "astro";
const imageMap = { const imageMap = {
"wg": wg, "wg": await getRandomFromMode("wargear"),
"mwg": mwg, "mwg": await getRandomFromMode("miniwargear"),
"as": as, "as": await getRandomFromMode("airship"),
"ws": ws, "ws": await getRandomFromMode("warship"),
"qg": mwg, "qg": await getRandomFromMode("quickgear"),
}; };
async function getRandomFromMode(mode: "wargear" | "airship" | "megawargear" | "microwargear" | "miniwargear" | "quickgear" | "streetfight" | "warship"): Promise<ImageMetadata> {
const publics = await getCollection("publics", entry => entry.data.gamemode.id === mode);
return publics[Math.floor(Math.random() * publics.length)].data.image;
}
const modes = await getCollection("modes", entry => entry.data.main); const modes = await getCollection("modes", entry => entry.data.main);
--- ---
@ -25,7 +32,7 @@ const modes = await getCollection("modes", entry => entry.data.main);
<div class="dark:bg-neutral-800 rounded-md p-4 border border-neutral-400 shadow-md my-4 flex flex-col <div class="dark:bg-neutral-800 rounded-md p-4 border border-neutral-400 shadow-md my-4 flex flex-col
md:flex-row"> md:flex-row">
<Image height="300" width="300" src={imageMap[value.data.translationKey]} <Image height="300" width="300" src={imageMap[value.data.translationKey]}
alt={t("rules." + value.data.translationKey + ".title")} class="dark:invert"></Image> alt={t("rules." + value.data.translationKey + ".title")}></Image>
<div class="ml-4"> <div class="ml-4">
<h1 class="text-2xl font-bold">{t(value.data.translationKey + ".title")}</h1> <h1 class="text-2xl font-bold">{t(value.data.translationKey + ".title")}</h1>
<div>{t("rules." + value.data.translationKey + ".description")}</div> <div>{t("rules." + value.data.translationKey + ".description")}</div>