merged projects and games pages and restructured projects
This commit is contained in:
@@ -7,8 +7,6 @@
|
|||||||
<span>»</span>
|
<span>»</span>
|
||||||
<a href="/projects">Projects</a>
|
<a href="/projects">Projects</a>
|
||||||
<span> // </span>
|
<span> // </span>
|
||||||
<a href="/games">Games</a>
|
|
||||||
<span> // </span>
|
|
||||||
<a href="/about">About</a>
|
<a href="/about">About</a>
|
||||||
<span>«</span>
|
<span>«</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
export interface Project {
|
export interface Project {
|
||||||
id: string;
|
id: string;
|
||||||
|
type: string; // currently used types: game, app, hardware, music
|
||||||
isActive: boolean; // whether the project is currently active (true) or a past project (false)
|
isActive: boolean; // whether the project is currently active (true) or a past project (false)
|
||||||
banner: string;
|
banner: string;
|
||||||
icon: string;
|
icon: string;
|
||||||
@@ -18,6 +19,7 @@ export interface Link {
|
|||||||
export const projects: Project[] = [
|
export const projects: Project[] = [
|
||||||
{
|
{
|
||||||
id: "projectn5",
|
id: "projectn5",
|
||||||
|
type: "game",
|
||||||
isActive: true,
|
isActive: true,
|
||||||
banner: "/projects/projectn5/banner.webp",
|
banner: "/projects/projectn5/banner.webp",
|
||||||
icon: "",
|
icon: "",
|
||||||
@@ -26,7 +28,7 @@ export const projects: Project[] = [
|
|||||||
subtitle: "",
|
subtitle: "",
|
||||||
paragraphs: [
|
paragraphs: [
|
||||||
"I'm currently working on a game developed using Godot, entitled Project N5! It's aiming to be an action-adventure 3D jump & run heavily inspired by games such as <a href='https://en.wikipedia.org/wiki/Ratchet_%26_Clank'>Ratchet & Clank</a>.",
|
"I'm currently working on a game developed using Godot, entitled Project N5! It's aiming to be an action-adventure 3D jump & run heavily inspired by games such as <a href='https://en.wikipedia.org/wiki/Ratchet_%26_Clank'>Ratchet & Clank</a>.",
|
||||||
"I maintain a development log on this website, feel free to check it out if you're curious!",
|
"I maintain a development log on this website, feel free to check it out if you're curious! Or play some of the old builds available for download below.",
|
||||||
],
|
],
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
@@ -45,6 +47,7 @@ export const projects: Project[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "projektike",
|
id: "projektike",
|
||||||
|
type: "game",
|
||||||
isActive: true,
|
isActive: true,
|
||||||
banner: "/projects/projektike/banner.webp",
|
banner: "/projects/projektike/banner.webp",
|
||||||
icon: "",
|
icon: "",
|
||||||
@@ -63,6 +66,7 @@ export const projects: Project[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "daisyfm",
|
id: "daisyfm",
|
||||||
|
type: "hardware",
|
||||||
isActive: false,
|
isActive: false,
|
||||||
banner: "/projects/daisyfm/banner.webp",
|
banner: "/projects/daisyfm/banner.webp",
|
||||||
icon: "",
|
icon: "",
|
||||||
@@ -78,17 +82,18 @@ export const projects: Project[] = [
|
|||||||
link: "/projects/daisyfm",
|
link: "/projects/daisyfm",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "Get the PCB and STL files",
|
text: "Get the <b>PCB and STL files</b>",
|
||||||
link: "//files.denizk0461.dev/daisyfm/",
|
link: "//files.denizk0461.dev/daisyfm/",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: "View the repository",
|
text: "View the code files on <b>Codeberg</b>",
|
||||||
link: "https://codeberg.org/denizk0461/daisy-fm-synth",
|
link: "https://codeberg.org/denizk0461/daisy-fm-synth",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "weserplaner",
|
id: "weserplaner",
|
||||||
|
type: "app",
|
||||||
isActive: false,
|
isActive: false,
|
||||||
banner: "/projects/weserplaner/banner.webp",
|
banner: "/projects/weserplaner/banner.webp",
|
||||||
icon: "/projects/weserplaner/icon.webp",
|
icon: "/projects/weserplaner/icon.webp",
|
||||||
@@ -113,6 +118,7 @@ export const projects: Project[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "textbasic",
|
id: "textbasic",
|
||||||
|
type: "app",
|
||||||
isActive: false,
|
isActive: false,
|
||||||
banner: "",
|
banner: "",
|
||||||
icon: "/projects/textbasic/icon.webp",
|
icon: "/projects/textbasic/icon.webp",
|
||||||
@@ -136,6 +142,7 @@ export const projects: Project[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "dreamworld",
|
id: "dreamworld",
|
||||||
|
type: "music",
|
||||||
isActive: false,
|
isActive: false,
|
||||||
banner: "/projects/dreamworld/banner.webp",
|
banner: "/projects/dreamworld/banner.webp",
|
||||||
icon: "/projects/dreamworld/icon.webp",
|
icon: "/projects/dreamworld/icon.webp",
|
||||||
@@ -165,6 +172,7 @@ export const projects: Project[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "qwark",
|
id: "qwark",
|
||||||
|
type: "app",
|
||||||
isActive: false,
|
isActive: false,
|
||||||
banner: "",
|
banner: "",
|
||||||
icon: "/projects/qwark/icon.webp",
|
icon: "/projects/qwark/icon.webp",
|
||||||
@@ -185,6 +193,7 @@ export const projects: Project[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "avhplan",
|
id: "avhplan",
|
||||||
|
type: "app",
|
||||||
isActive: false,
|
isActive: false,
|
||||||
banner: "",
|
banner: "",
|
||||||
date: "April 2019 – March 2020",
|
date: "April 2019 – March 2020",
|
||||||
@@ -210,6 +219,7 @@ export const projects: Project[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "anewbeginning",
|
id: "anewbeginning",
|
||||||
|
type: "music",
|
||||||
isActive: false,
|
isActive: false,
|
||||||
banner: "",
|
banner: "",
|
||||||
icon: "/projects/anewbeginning/icon.webp",
|
icon: "/projects/anewbeginning/icon.webp",
|
||||||
@@ -237,6 +247,7 @@ export const projects: Project[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "soundcloud",
|
id: "soundcloud",
|
||||||
|
type: "music",
|
||||||
isActive: false,
|
isActive: false,
|
||||||
banner: "",
|
banner: "",
|
||||||
icon: "/projects/soundcloud/icon.webp",
|
icon: "/projects/soundcloud/icon.webp",
|
||||||
@@ -257,13 +268,9 @@ export const projects: Project[] = [
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export const games: Project[] = [
|
|
||||||
{
|
{
|
||||||
id: "magician",
|
id: "magician",
|
||||||
|
type: "game",
|
||||||
isActive: false,
|
isActive: false,
|
||||||
banner: "/projects/magician/banner.webp",
|
banner: "/projects/magician/banner.webp",
|
||||||
icon: "",
|
icon: "",
|
||||||
@@ -280,34 +287,9 @@ export const games: Project[] = [
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
|
||||||
id: "projectn5",
|
|
||||||
isActive: false,
|
|
||||||
banner: "/projects/projectn5/banner.webp",
|
|
||||||
icon: "",
|
|
||||||
date: "September 2023 – June 2025",
|
|
||||||
title: "Project N5",
|
|
||||||
subtitle: "Action-Adventure Jump & Run",
|
|
||||||
paragraphs: [
|
|
||||||
"<b>Project N5</b> is the deprecated version of my current game. The old version is available to play in-browser, plus some downloads of several Windows builds.",
|
|
||||||
],
|
|
||||||
links: [
|
|
||||||
{
|
|
||||||
text: "View the <b>development log</b>",
|
|
||||||
link: "/projects/projectn5/devlog",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "Play <b>Project N5</b> (last build)",
|
|
||||||
link: "//apps.denizk0461.dev/projectn5",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "Download the <b>old Windows builds</b>",
|
|
||||||
link: "//files.denizk0461.dev/projectn5",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
id: "swordsnstuff",
|
id: "swordsnstuff",
|
||||||
|
type: "game",
|
||||||
isActive: false,
|
isActive: false,
|
||||||
banner: "/projects/swordsnstuff/banner.webp",
|
banner: "/projects/swordsnstuff/banner.webp",
|
||||||
icon: "",
|
icon: "",
|
||||||
@@ -328,6 +310,7 @@ export const games: Project[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "tads",
|
id: "tads",
|
||||||
|
type: "game",
|
||||||
isActive: false,
|
isActive: false,
|
||||||
banner: "/projects/tads/banner.webp",
|
banner: "/projects/tads/banner.webp",
|
||||||
icon: "/projects/tads/icon.webp",
|
icon: "/projects/tads/icon.webp",
|
||||||
|
|||||||
@@ -54,13 +54,6 @@
|
|||||||
img: "projects/project-mix.webp",
|
img: "projects/project-mix.webp",
|
||||||
link: "projects",
|
link: "projects",
|
||||||
},
|
},
|
||||||
{
|
|
||||||
title: "Games",
|
|
||||||
subtitle: "some small games I've made that are available online",
|
|
||||||
fullWidth: false,
|
|
||||||
img: "common/hypertext.webp",
|
|
||||||
link: "games",
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
title: "Files",
|
title: "Files",
|
||||||
subtitle: "find things I've put for download on my <a href='https://github.com/9001/copyparty'>copyparty</a> instance",
|
subtitle: "find things I've put for download on my <a href='https://github.com/9001/copyparty'>copyparty</a> instance",
|
||||||
|
|||||||
@@ -1,59 +0,0 @@
|
|||||||
<script lang="ts">
|
|
||||||
import BannerTitleAlt from "$lib/banner-title-alt.svelte";
|
|
||||||
import ContentSidebar from "$lib/content-sidebar.svelte";
|
|
||||||
import TableOfContents from "$lib/table-of-contents.svelte";
|
|
||||||
import LinkList from "$lib/link-list.svelte";
|
|
||||||
import type { Project } from '$lib/projects';
|
|
||||||
import { games } from '$lib/projects';
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<svelte:head>
|
|
||||||
<title>Games | denizk0461</title>
|
|
||||||
</svelte:head>
|
|
||||||
|
|
||||||
<BannerTitleAlt
|
|
||||||
title="Games"
|
|
||||||
banner="/projects/banner.webp"
|
|
||||||
subtitle="Just some small game projects"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<ContentSidebar>
|
|
||||||
|
|
||||||
<TableOfContents slot="side-left" />
|
|
||||||
|
|
||||||
<div slot="main">
|
|
||||||
<p>Here you'll find all the game projects I've put online!</p>
|
|
||||||
{#each games as game}
|
|
||||||
{@render gameSummary({ game: game })}
|
|
||||||
{/each}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</ContentSidebar>
|
|
||||||
|
|
||||||
{#snippet gameSummary({
|
|
||||||
game
|
|
||||||
}: {
|
|
||||||
game: Project;
|
|
||||||
})}
|
|
||||||
<div>
|
|
||||||
<h3 id="{game.id}">{game.title}</h3>
|
|
||||||
{#if game.subtitle}
|
|
||||||
<p class="project-subtitle">» {game.subtitle}</p>
|
|
||||||
{/if}
|
|
||||||
{#if game.banner}
|
|
||||||
<div class="project-banner-container">
|
|
||||||
<img class="project-banner" src="{game.banner}">
|
|
||||||
{#if game.date}
|
|
||||||
<p class="project-date project-date-embed">{game.date}</p>
|
|
||||||
{/if}
|
|
||||||
</div>
|
|
||||||
{/if}
|
|
||||||
{#if game.icon}
|
|
||||||
<img class="project-icon" src="{game.icon}">
|
|
||||||
{/if}
|
|
||||||
{#each game.paragraphs as paragraph}
|
|
||||||
<p>{@html paragraph}</p>
|
|
||||||
{/each}
|
|
||||||
<LinkList entries={game.links} />
|
|
||||||
</div>
|
|
||||||
{/snippet}
|
|
||||||
@@ -30,14 +30,29 @@
|
|||||||
<Content>
|
<Content>
|
||||||
<TableOfContents disableStickyScrolling={true} />
|
<TableOfContents disableStickyScrolling={true} />
|
||||||
|
|
||||||
<h2>Active Projects</h2>
|
<h2 id="games">Games</h2>
|
||||||
{#each getActiveProjects(projects, true) as activeProject}
|
{#each projects as project}
|
||||||
{@render projectSummary({ project: activeProject })}
|
{#if project.type == "game"}
|
||||||
|
{@render projectSummary({ project: project })}
|
||||||
|
{/if}
|
||||||
{/each}
|
{/each}
|
||||||
|
<h2 id="hardware">Hardware</h2>
|
||||||
<h2>Past Projects</h2>
|
{#each projects as project}
|
||||||
{#each getActiveProjects(projects, false) as pastProject}
|
{#if project.type == "hardware"}
|
||||||
{@render projectSummary({ project: pastProject })}
|
{@render projectSummary({ project: project })}
|
||||||
|
{/if}
|
||||||
|
{/each}
|
||||||
|
<h2 id="apps">Apps</h2>
|
||||||
|
{#each projects as project}
|
||||||
|
{#if project.type == "app"}
|
||||||
|
{@render projectSummary({ project: project })}
|
||||||
|
{/if}
|
||||||
|
{/each}
|
||||||
|
<h2 id="music">Music</h2>
|
||||||
|
{#each projects as project}
|
||||||
|
{#if project.type == "music"}
|
||||||
|
{@render projectSummary({ project: project })}
|
||||||
|
{/if}
|
||||||
{/each}
|
{/each}
|
||||||
</Content>
|
</Content>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user