.
This commit is contained in:
parent
36576a27f3
commit
c2095d0b13
29 changed files with 5941 additions and 0 deletions
54
wip-refactor/pages/diagnostics.vue
Normal file
54
wip-refactor/pages/diagnostics.vue
Normal file
|
@ -0,0 +1,54 @@
|
|||
<script setup>
|
||||
import { diagnostics, run_diagnostics } from '~/assets/diagnostics';
|
||||
onMounted(() => {
|
||||
run_diagnostics();
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="vga-font">
|
||||
<h1>Diagnostics</h1>
|
||||
<ul>
|
||||
<li v-for="diagnostic in diagnostics">
|
||||
<div v-if="diagnostic.status !== undefined">
|
||||
<!-- If diagnostic is warn or err, show text-->
|
||||
<!-- Style like SystemD, e.g. [ OK ]: msg -->
|
||||
<!-- Colorize the status, as well -->
|
||||
<p v-if="diagnostic.status.severity === 'OK'">
|
||||
[ <span class="text-green-500"> OK </span> ]: {{ diagnostic.title }} - {{ diagnostic.status.message }}
|
||||
</p>
|
||||
<p v-else-if="diagnostic.status.severity === 'WARN'">
|
||||
[ <span class="text-yellow">WARN</span> ]: {{ diagnostic.title }} - {{ diagnostic.status.message }}
|
||||
</p>
|
||||
<p v-else-if="diagnostic.status.severity === 'ERR'">
|
||||
[ <span class="text-red">FAIL</span> ]: {{ diagnostic.title }} - {{ diagnostic.status.message }}
|
||||
</p>
|
||||
<p v-else-if="diagnostic.status.severity === 'SKIP'">
|
||||
[ <span class="text-mauve">SKIP</span> ]: {{ diagnostic.title }} - {{ diagnostic.status.message }}
|
||||
</p>
|
||||
<div v-if="diagnostic.steps && diagnostic.steps.length > 0" class="">
|
||||
<ul>
|
||||
<li v-for="(step, stepIndex) in diagnostic.steps" :key="step.name">
|
||||
<div v-if="step.status !== undefined">
|
||||
<!-- Determine if it's the last step in the list -->
|
||||
<p v-if="step.status.severity === 'OK'">
|
||||
{{ stepIndex === diagnostic.steps.length - 1 ? '└─' : '├─' }}[ <span class="text-green-500">OK</span> ]: {{ step.name }} - {{ step.status.message }}
|
||||
</p>
|
||||
<p v-else-if="step.status.severity === 'WARN'">
|
||||
{{ stepIndex === diagnostic.steps.length - 1 ? '└─' : '├─' }}[<span class="text-yellow">WARN</span>]: {{ step.name }} - {{ step.status.message }}
|
||||
</p>
|
||||
<p v-else-if="step.status.severity === 'ERR'">
|
||||
{{ stepIndex === diagnostic.steps.length - 1 ? '└─' : '├─' }}[<span class="text-red">FAIL</span>]: {{ step.name }} - {{ step.status.message }}
|
||||
</p>
|
||||
<p v-else-if="step.status.severity === 'SKIP'">
|
||||
{{ stepIndex === diagnostic.steps.length - 1 ? '└─' : '├─' }}[<span class="text-mauve">SKIP</span>]: {{ step.name }} - {{ step.status.message }}
|
||||
</p>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</template>
|
102
wip-refactor/pages/index.vue
Normal file
102
wip-refactor/pages/index.vue
Normal file
|
@ -0,0 +1,102 @@
|
|||
<script setup>
|
||||
import Card from '~/components/Card.vue';
|
||||
import FancyButton from '~/components/FancyButton.vue';
|
||||
import FancyCard from '~/components/FancyCard.vue';
|
||||
import GroupCard from '~/components/GroupCard.vue';
|
||||
import JustifyCenter from '~/components/JustifyCenter.vue';
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex flex-col items-center text-center">
|
||||
<!-- TODO: This page should be more informative. Presently, there is zero information about what people are looking at. -->
|
||||
<!-- Resources -->
|
||||
<GroupCard>
|
||||
<h2 class="text-center">Resources</h2>
|
||||
<JustifyCenter class="text-pretty">
|
||||
<!-- Sharkey -->
|
||||
<FancyCard color="blue" class="w-[34rem]">
|
||||
<template #header>
|
||||
<h3>Sharkey</h3>
|
||||
</template>
|
||||
<template #default>
|
||||
<p>
|
||||
Twitter alternative without a flood of Nazis.<br /><br />
|
||||
We manually approve all members + verify them outside of the net, too. Fam & friends only to
|
||||
make an account in our space, but you can use any Sharkey/Mastodon/etc instance to register
|
||||
elsewhere and talk to us.
|
||||
</p>
|
||||
</template>
|
||||
<template #footer>
|
||||
<a href="https://social.smgames.club">
|
||||
<FancyButton color="blue">
|
||||
Go to Platform
|
||||
</FancyButton>
|
||||
</a>
|
||||
</template>
|
||||
</FancyCard>
|
||||
<!-- Servers -->
|
||||
<FancyCard color="maroon" class="w-[34rem]" cardClass="bg-surface-1">
|
||||
<template #header>
|
||||
<h3>Servers</h3>
|
||||
</template>
|
||||
<template #default>
|
||||
<p>
|
||||
Privately hosted servers for Minecraft, Garry's Mod, TF2, Terraria, and more.
|
||||
Clicking each game shows instructions to get on.
|
||||
</p>
|
||||
</template>
|
||||
<template #footer>
|
||||
<a href="/servers">
|
||||
<FancyButton color="maroon">
|
||||
See our Servers
|
||||
</FancyButton>
|
||||
</a>
|
||||
</template>
|
||||
</FancyCard>
|
||||
</JustifyCenter>
|
||||
</GroupCard>
|
||||
|
||||
<!-- Projects -->
|
||||
<GroupCard>
|
||||
<h2 class="text-center">Projects</h2>
|
||||
<JustifyCenter class="text-pretty">
|
||||
<!-- Forgejo -->
|
||||
<FancyCard color="red" class="w-[34rem]">
|
||||
<template #header>
|
||||
<h3>Forgejo</h3>
|
||||
</template>
|
||||
<template #default>
|
||||
<p>
|
||||
Access our code repositories and collaborate on development with our Forgejo instance.
|
||||
</p>
|
||||
</template>
|
||||
<template #footer>
|
||||
<a href="https://git.smgames.club" target="_blank">
|
||||
<FancyButton color="red">
|
||||
Visit Forgejo
|
||||
</FancyButton>
|
||||
</a>
|
||||
</template>
|
||||
</FancyCard>
|
||||
<!-- Game Development-->
|
||||
<FancyCard color="mauve" class="w-[34rem]">
|
||||
<template #header>
|
||||
<h3>Game Development</h3>
|
||||
</template>
|
||||
<template #default>
|
||||
<p>
|
||||
Explore the games and tools actively being developed by our team.
|
||||
</p>
|
||||
</template>
|
||||
<template #footer>
|
||||
<a href="/projects">
|
||||
<FancyButton color="mauve">
|
||||
View Projects
|
||||
</FancyButton>
|
||||
</a>
|
||||
</template>
|
||||
</FancyCard>
|
||||
</JustifyCenter>
|
||||
</GroupCard>
|
||||
</div>
|
||||
</template>
|
155
wip-refactor/pages/projects.vue
Normal file
155
wip-refactor/pages/projects.vue
Normal file
|
@ -0,0 +1,155 @@
|
|||
<script setup lang="ts">
|
||||
import { ref, TransitionGroup } from 'vue';
|
||||
import { projects, tags } from '@/assets/projects';
|
||||
|
||||
const activeTags: Ref<string[]> = ref([]);
|
||||
const showFaq: Ref<boolean> = ref(false);
|
||||
|
||||
function toggleTag(tag: string) {
|
||||
if (activeTags.value.includes(tag)) {
|
||||
activeTags.value = activeTags.value.filter((t) => t !== tag);
|
||||
} else {
|
||||
activeTags.value.push(tag);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="flex justify-center">
|
||||
<h1>Projects</h1>
|
||||
</div>
|
||||
|
||||
<!-- Information -->
|
||||
<div class="flex justify-center mb-5">
|
||||
<div class="flex flex-col justify-center text-pretty max-w-[60rem]">
|
||||
<p class="text-center">
|
||||
Welcome to our projects page! We create <strong>websites</strong>, <strong>video games</strong>,
|
||||
<strong>addons for games</strong>, <strong>avatars and worlds for VRChat</strong>, and
|
||||
<strong>game assets</strong>. Explore our ongoing projects below.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- FAQ Button -->
|
||||
<div class="flex justify-center">
|
||||
<button @click="showFaq = true" class="border-none bg-accent text-black rounded-full hover:bg-accent-over">
|
||||
Frequently Asked Questions
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Filter Buttons -->
|
||||
<div class="flex justify-center">
|
||||
<div v-for="tag in tags" :key="tag">
|
||||
<button v-if="!activeTags.includes(tag)" @click="toggleTag(tag)" class="border-none">
|
||||
{{ tag }}
|
||||
</button>
|
||||
<button v-else :key="tag" @click="toggleTag(tag)" class="border border-accent bg-surface-2">
|
||||
{{ tag }}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Projects Grid -->
|
||||
<div class="flex justify-center">
|
||||
<div class="flex justify-center text-pretty max-w-[60rem]">
|
||||
<TransitionGroup name="list" mode="out-in" class="flex flex-wrap justify-center">
|
||||
<div v-for="project in
|
||||
activeTags.length === 0 ?
|
||||
projects :
|
||||
projects.filter((project) => project.tags.some((tag) => activeTags.includes(tag)))
|
||||
" :key="project">
|
||||
<Card class="w-60 min-h-60">
|
||||
<div>
|
||||
<h3>{{ project.name }}</h3>
|
||||
<p>{{ project.description }}</p>
|
||||
<div class="flex flex-wrap">
|
||||
<div v-for="tag in project.tags">
|
||||
<p class="bg-surface-2 p-1 m-[1px] rounded-md">{{ tag }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Card>
|
||||
</div>
|
||||
</TransitionGroup>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal -->
|
||||
<Transition name="fade">
|
||||
<div v-if="showFaq" class="modal-overlay" @click="showFaq = false">
|
||||
<Modal>
|
||||
<h2>Frequently Asked Questions</h2>
|
||||
<hr>
|
||||
<ul class="faq-list">
|
||||
<li>
|
||||
<strong>"Do you need an idea person?"</strong>
|
||||
<blockquote>No. Not now, and likely not ever.</blockquote>
|
||||
</li>
|
||||
<li>
|
||||
<strong>"Do you need an asset creator? What would you pay me?"</strong>
|
||||
<blockquote>
|
||||
This applies to graphics, models, sounds, music, and similar work. Suggesting random ideas and demanding payment isn't how this works.
|
||||
Provide a portfolio and clear price sheets. We offer fair indie rates based on quality. If your work is lower quality, understand that others
|
||||
may carry more of the creative load.
|
||||
</blockquote>
|
||||
</li>
|
||||
<li>
|
||||
<strong>"If I'm hired to work on sound effects, that means I'm the sound director, right?"</strong>
|
||||
<blockquote>
|
||||
No, it doesn't. Roles like "director" require experience, leadership skills, and a proven track record. Freelance roles are just that—freelance.
|
||||
Don't expect a salary or profit share from such a position. Additionally, if we hire you to create assets, <b>we</b> decide what's needed,
|
||||
unless creative freedom is explicitly granted. Thank you for understanding.
|
||||
</blockquote>
|
||||
</li>
|
||||
<li>
|
||||
<strong>"Well, how much WOULD you pay me?"</strong>
|
||||
<blockquote>
|
||||
Provide your portfolio and rates. If you don't have one, we'll evaluate your work against indie standards to make a fair offer. We're not presently hiring.
|
||||
</blockquote>
|
||||
</li>
|
||||
<li>
|
||||
<strong>On suggesting ideas and claiming ownership</strong>
|
||||
<blockquote>
|
||||
Ideas, concepts, and words alone are not copyrightable—only tangible creations such as art, sound effects, or completed works can be protected by copyright.
|
||||
Claiming ownership of an idea without contributing to its execution is not recognized in the professional world. That said, we value constructive suggestions and
|
||||
may acknowledge meaningful contributions with in-game benefits or recognition. However, we maintain a zero-tolerance policy for unfounded claims or disruptive behavior,
|
||||
to ensure a fair and respectful environment for everyone.
|
||||
</blockquote>
|
||||
</li>
|
||||
<li>
|
||||
<strong>"You guys make games, so I want you to make this concept of mine!"</strong>
|
||||
<blockquote>
|
||||
Not for free. We have our own projects to focus on, and <u>we are not for hire at this time</u>. Additionally, being an "idea person" is not a paid position in the game
|
||||
development industry. Successful game creation requires collaboration, execution, and tangible contributions.
|
||||
</blockquote>
|
||||
</li>
|
||||
</ul>
|
||||
</Modal>
|
||||
</div>
|
||||
</Transition>
|
||||
</template>
|
||||
|
||||
<style>
|
||||
/* Transition for the cards */
|
||||
.list-move, /* apply transition to moving elements */
|
||||
.list-enter-active,
|
||||
.list-leave-active {
|
||||
transition: all 0.5s ease;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
@apply border-l-4 border-border pl-2
|
||||
}
|
||||
|
||||
.list-enter-from,
|
||||
.list-leave-to {
|
||||
opacity: 0;
|
||||
transform: translateX(30px);
|
||||
}
|
||||
|
||||
/* ensure leaving items are taken out of layout flow so that moving
|
||||
animations can be calculated correctly. */
|
||||
.list-leave-active {
|
||||
position: absolute;
|
||||
}
|
||||
</style>
|
3
wip-refactor/pages/servers.vue
Normal file
3
wip-refactor/pages/servers.vue
Normal file
|
@ -0,0 +1,3 @@
|
|||
<template>
|
||||
|
||||
</template>
|
Loading…
Add table
Add a link
Reference in a new issue