diff --git a/src/components/Navbar.svelte b/src/components/Navbar.svelte
index 3e0194c..9d3a616 100644
--- a/src/components/Navbar.svelte
+++ b/src/components/Navbar.svelte
@@ -18,81 +18,133 @@
-->
-
+
-
{#if searchOpen}
- {#await import("./SearchComponent.svelte") then c}
-
- {/await}
+ {#await import("./SearchComponent.svelte") then c}
+
+ {/await}
{/if}
\ No newline at end of file
+ .match {
+ width: min(100vw, 70em);
+ }
+
diff --git a/src/content/config.ts b/src/content/config.ts
index 6558cf4..2766f90 100644
--- a/src/content/config.ts
+++ b/src/content/config.ts
@@ -104,6 +104,14 @@ export const publics = defineCollection({
}),
});
+export const tutorials = defineCollection({
+ type: "content",
+ schema: z.object({
+ title: z.string(),
+ translationKey: z.string(),
+ }),
+});
+
export const collections = {
"pages": pages,
"help": help,
@@ -112,4 +120,5 @@ export const collections = {
"downloads": downloads,
"announcements": announcements,
"publics": publics,
+ "tutorials": tutorials
};
diff --git a/src/content/tutorials/Tracer.md b/src/content/tutorials/Tracer.md
new file mode 100644
index 0000000..714f16e
--- /dev/null
+++ b/src/content/tutorials/Tracer.md
@@ -0,0 +1,56 @@
+---
+title: Tracer
+translationKey: tracer
+slug: tracer
+---
+
+# Der Tracer
+
+
+Der Tracer ist eines der Kern-Tools unseres BauSystems. Durch ihn kannst du
+dir komfortabel angucken wie sich die TNT deiner Kanonen Tick für Tick
+verhalten. Dies tut der Tracer, indem er alle Daten der auf einem Plot
+gezündeten TNTs aufnimmt und speichert. Du kannst dir dann verschiedene
+Darstellungsformen der aufgezeichneten TNTs angucken.
+
+## Den Tracer starten
+Um die Schüsse deiner Kanone auf einem Plot aufzunehmen, musst du den Tracer
+für diese Plot einschalten. Nutze hierfür `/trace auto`.
+Nun da der Tracer an ist, wird für jeden Kanonenschuss ein Trace erstellt.
+
+## Traces anzeigen und analysieren
+Jetzt da der Tracer an ist und du einen Schuss abgegeben hast, kannst du dir
+den Trace mit
+`/trace show` anzeigen (Falls du mehrere Schüsse abgegeben hast kannst du
+dir mit
+`/trace isolate [Schuss-Nummer]` den Trace eines einzelnen Schusses anzeigen).
+
+
+Zur Analyse eines Schusses stellen wir dir verschiedene **View-Flags** zur
+Verfügung. Diese aktivierst du, indem du sie an den Trace-show Command
+anhängst.
+
+| Flag | Beschreibung |
+| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `count` | Zeige dir die Zahl der TNTs an die an einem Trace-Punkt aufgenommen wurden |
+| `explosion` | Zeige dir nur die Trace-Punkte an, an denen TNT explodiert ist |
+| `fuse` | Zeige dir an wie weit die TNTs an einem Trace Punkt von der Explosion weg waren |
+| `ignite` | Ohne diese Flag zeigt der Tracer nur Trace-Punkte an, die nach der ersten Explosion entstanden sind. Mit dieser Flag werden alle Trace-Punkte angezeigt |
+| `micromotion` | Zeige nur TNT an, die sich zu einem beliebigen Zeitpunkt mir einer Geschwindigkeit von kleiner 0.001 bewegt haben |
+| `source` | Zeige dir nur Trace-Punkte an, bei denen TNT gezündet wurde |
+| `build-destroy-only` | Zeige dir nur TNT an, die im Bau-Bereich explodiert sind |
+| `testblock-destroy-only` | Zeige dir nur TNT an, die im Testblock-Bereich explodiert sind |
+| `advanced` | Zeige dir die TNT-Zwischenberechnungspunkte auf den einzelnen Achsen an |
+
+\
+Du kannst dir auch nur einen Abschnitt des Traces mit
+`\trace show from [Start-Zeit] to [End-Zeit] with [View-Flags]` anzeigen. Du kann auch `from` oder `to` weglassen, um dir den Trace von bzw. bis zu einem gewissen Zeitpunkt angucken.
+
+## Traces löschen
+Allgemein empfiehlt es sich Traces nicht ewig rumliegen zu lassen, da ein
+`/trace show` schnell den PC zum erliegen bringen kann. Nutze `/trace
+delete [Schuss-Nummer]` um einzelne Traces zu löschen und `/trace clear`
+um alle Traces auf einem Plot zu löschen.
+
+## Traces gemeinsam betrachten
+Wenn man zusammen an einer Kanonen arbeitet kann es praktisch sein, die selben Traces, mit den selben View-Flags zu betrachten. Dies kannst du machen mit `/trace follow [Spieler]`. Den Follow kannst du mit `/trace unfollow` wieder aufheben. Zusätzlich kannst du alle Spieler auf einem Bau-Server mit `/trace broadcast` einladen deiner Trace-View zu folgen.
\ No newline at end of file
diff --git a/src/i18n/common/de.json b/src/i18n/common/de.json
index 96e2a91..c390b68 100644
--- a/src/i18n/common/de.json
+++ b/src/i18n/common/de.json
@@ -63,6 +63,7 @@
"announcements": "Ankündigungen",
"about": "Über Uns",
"downloads": "Downloads",
+ "tutorials": "Tutorials",
"faq": "FAQ"
},
"rules": {
diff --git a/src/i18n/common/en.json b/src/i18n/common/en.json
index e8d17a3..b61889e 100644
--- a/src/i18n/common/en.json
+++ b/src/i18n/common/en.json
@@ -6,6 +6,7 @@
"announcements": "Announcements",
"about": "About",
"downloads": "Downloads",
+ "tutorials": "Tutorials",
"faq": "FAQ"
},
"rules": {
diff --git a/src/images/tutorials/tracer-cover.png b/src/images/tutorials/tracer-cover.png
new file mode 100644
index 0000000..22f6024
Binary files /dev/null and b/src/images/tutorials/tracer-cover.png differ
diff --git a/src/pages/index.astro b/src/pages/index.astro
index eedd62c..7e9d0d1 100644
--- a/src/pages/index.astro
+++ b/src/pages/index.astro
@@ -15,7 +15,7 @@ import {type Player} from "../components/types/data";
import PostComponent from "../components/PostComponent.astro";
import BackgroundImage from "../components/BackgroundImage.astro";
-const teamMember: { [key: string]: Player[]} = await fetch("http://127.0.0.1:1337/data/team")
+const teamMember: { [key: string]: Player[]} = await fetch("https://api.steamwar.de/data/team")
.then(value => value.json());
const posts = await getCollection("announcements", entry => entry.id.split("/")[0] === astroI18n.locale);
diff --git a/src/pages/tutorials/[tutorial].astro b/src/pages/tutorials/[tutorial].astro
new file mode 100644
index 0000000..b09e2ae
--- /dev/null
+++ b/src/pages/tutorials/[tutorial].astro
@@ -0,0 +1,19 @@
+---
+import { createGetStaticPaths } from "astro-i18n";
+import { getCollection } from "astro:content";
+
+const { tutorial } = Astro.props;
+
+export const getStaticPaths = createGetStaticPaths(async () => {
+ const tutorials = await getCollection("tutorials");
+
+ return tutorials.map((entry) => ({
+ props: {
+ title: entry.data.title
+ },
+ params: {
+ title: entry.slug,
+ },
+ }));
+});
+---
diff --git a/src/pages/tutorials/index.astro b/src/pages/tutorials/index.astro
new file mode 100644
index 0000000..e69de29