forked from noxious/client
Removed unused classnames
This commit is contained in:
parent
27641f2df8
commit
5fad4583ad
@ -1,22 +0,0 @@
|
|||||||
// Colors
|
|
||||||
$white: #fff;
|
|
||||||
$black: #000;
|
|
||||||
$light-blue: #00c2ff;
|
|
||||||
$red: #d50000;
|
|
||||||
$dark-red: #b30000;
|
|
||||||
$gray: #7f7f7f;
|
|
||||||
$gray-2: #696969;
|
|
||||||
$dark-gray: #313638;
|
|
||||||
$light-gray: #d3d3d3;
|
|
||||||
$blue-gray: #778899;
|
|
||||||
$cyan: #368f8b;
|
|
||||||
$dark-cyan: #376362;
|
|
||||||
$light-cyan: #00b3b3;
|
|
||||||
$bordeaux: #800020;
|
|
||||||
$dark-bordeaux: #4c0000;
|
|
||||||
$light-bordeaux: #cc0033;
|
|
||||||
$green: #09ad19;
|
|
||||||
|
|
||||||
// Fonts
|
|
||||||
$titles: 'Poppins', serif;
|
|
||||||
$default: 'Inter', serif;
|
|
@ -2,34 +2,15 @@
|
|||||||
@tailwind components;
|
@tailwind components;
|
||||||
@tailwind utilities;
|
@tailwind utilities;
|
||||||
|
|
||||||
@import '@/assets/scss/_variables';
|
|
||||||
|
|
||||||
// Fonts
|
// Fonts
|
||||||
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
|
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
|
||||||
|
|
||||||
//Globals
|
//Globals
|
||||||
|
|
||||||
// Column base styles
|
|
||||||
[class^="col-"] {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
padding: 0 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Generate column classes
|
|
||||||
@for $i from 1 through 12 {
|
|
||||||
.col-#{$i} {
|
|
||||||
$width: percentage(calc($i / 12));
|
|
||||||
flex: 0 0 calc($width - var(--gap));
|
|
||||||
max-width: calc($width - var(--gap));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
body {
|
||||||
|
@apply bg-black m-0 select-none;
|
||||||
-ms-overflow-style: none;
|
-ms-overflow-style: none;
|
||||||
scrollbar-width: none;
|
scrollbar-width: none;
|
||||||
background: $black;
|
|
||||||
margin: 0;
|
|
||||||
|
|
||||||
// Disable selection, might wanna comment when debugging
|
// Disable selection, might wanna comment when debugging
|
||||||
-webkit-user-select: none; /* Safari */
|
-webkit-user-select: none; /* Safari */
|
||||||
@ -45,30 +26,24 @@ h5,
|
|||||||
h6,
|
h6,
|
||||||
button,
|
button,
|
||||||
a {
|
a {
|
||||||
font-family: $titles;
|
@apply font-titles text-white font-medium m-0;
|
||||||
color: $white;
|
|
||||||
font-weight: 500;
|
|
||||||
margin: 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
p,
|
p,
|
||||||
span,
|
span,
|
||||||
li,
|
li,
|
||||||
label {
|
label {
|
||||||
font-family: $default;
|
@apply font-default text-white;
|
||||||
color: $white;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button,
|
button,
|
||||||
a {
|
a {
|
||||||
font-weight: 500;
|
@apply font-medium drop-shadow-20;
|
||||||
text-shadow: 0 4px 6px rgba($black, 0.25);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button,
|
button,
|
||||||
input {
|
input {
|
||||||
border: none;
|
@apply border-none bg-transparent;
|
||||||
background-color: transparent;
|
|
||||||
|
|
||||||
&[type='number'] {
|
&[type='number'] {
|
||||||
-webkit-appearance: textfield;
|
-webkit-appearance: textfield;
|
||||||
@ -82,53 +57,39 @@ input {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.input-cyan {
|
.input-cyan {
|
||||||
padding: 8px 10px;
|
@apply py-2 px-2.5 font-titles border border-solid border-cyan bg-white bg-opacity-80 rounded;
|
||||||
font-family: $titles;
|
|
||||||
border: 1px solid $cyan;
|
|
||||||
background-color: rgba($white, 0.8);
|
|
||||||
border-radius: 5px;
|
|
||||||
&:focus,
|
&:focus,
|
||||||
&:focus-visible {
|
&:focus-visible {
|
||||||
outline: $cyan auto 2px;
|
@apply outline-2 outline-cyan;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
text-align: center;
|
@apply text-center;
|
||||||
|
|
||||||
&.w-full {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.btn-cyan {
|
&.btn-cyan {
|
||||||
background-color: rgba($cyan, 0.5);
|
@apply bg-cyan bg-opacity-50 border border-solid border-white rounded drop-shadow-20;
|
||||||
border: 1px solid $white;
|
|
||||||
border-radius: 5px;
|
|
||||||
text-shadow: 0 3px 6px rgba($black, 0.2);
|
|
||||||
|
|
||||||
&.active,
|
&.active,
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: $cyan;
|
@apply bg-cyan;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&.btn-bordeaux {
|
&.btn-bordeaux {
|
||||||
background-color: rgba($bordeaux, 0.5);
|
@apply bg-bordeaux bg-opacity-50 border border-solid border-white rounded drop-shadow-20;
|
||||||
border: 1px solid $white;
|
|
||||||
border-radius: 5px;
|
|
||||||
text-shadow: 0 3px 6px rgba($black, 0.2);
|
|
||||||
|
|
||||||
&.active,
|
&.active,
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: $bordeaux;
|
@apply bg-bordeaux;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
cursor: pointer;
|
@apply cursor-pointer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
display: none;
|
@apply hidden;
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="chip-container flex flex-wrap items-center border-0 border-b border-solid border-gray-50">
|
<div class="flex flex-wrap items-center border-0 border-b border-solid border-gray-50">
|
||||||
<div v-for="(chip, i) in modelValue" :key="i" class="chip flex gap-2.5 items-center bg-cyan rounded py-1.5 px-2.5 m-1">
|
<div v-for="(chip, i) in modelValue" :key="i" class="flex gap-2.5 items-center bg-cyan rounded py-1.5 px-2.5 m-1">
|
||||||
<span>{{ chip }}</span>
|
<span>{{ chip }}</span>
|
||||||
<i class="delete-icon cursor-pointer text-white font-light font-default not-italic hover:text-gray-50" @click="deleteChip(i)">X</i>
|
<i class="cursor-pointer text-white font-light font-default not-italic hover:text-gray-50" @click="deleteChip(i)">X</i>
|
||||||
</div>
|
</div>
|
||||||
<input class="outline-none border-none max-w-[250px] p-1 m-1 text-white" v-model="currentInput" @keyup.enter="saveChip" @keydown.delete="backspaceDelete" />
|
<input class="outline-none border-none max-w-[250px] p-1 m-1 text-white" v-model="currentInput" @keyup.enter="saveChip" @keydown.delete="backspaceDelete" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="hud-wrapper relative left-0 w-[310px] h-[84px]">
|
<div class="hud-wrapper relative left-0 w-[310px] h-[84px]">
|
||||||
<div class="profile absolute w-[54px] h-[54px] bg-white bg-opacity-80 rounded-full border-3 border-solid border-white top-1/2 translate-y-[-50%] left-0 z-20">
|
<div class="absolute w-[54px] h-[54px] bg-white bg-opacity-80 rounded-full border-3 border-solid border-white top-1/2 translate-y-[-50%] left-0 z-20">
|
||||||
<img class="w-[28px] absolute left-1/2 top-1/2 translate-x-[-50%] translate-y-[-50%]" draggable="false" src="/assets/avatar/default/head.png" />
|
<img class="w-[28px] absolute left-1/2 top-1/2 translate-x-[-50%] translate-y-[-50%]" draggable="false" src="/assets/avatar/default/head.png" />
|
||||||
</div>
|
</div>
|
||||||
<div class="hud-bg absolute top-0 left-[30px] w-[280px] h-[84px] z-10 bg-[url('/assets/bg-hud-2.png')] bg-top bg-[length:cover] bg-no-repeat mask-[url('/assets/shapes/hud-image-shape.svg')] mask-center mask-[length:cover] mask-no-repeat"></div>
|
<div class="hud-bg absolute top-0 left-[30px] w-[280px] h-[84px] z-10 bg-[url('/assets/bg-hud-2.png')] bg-top bg-[length:cover] bg-no-repeat mask-[url('/assets/shapes/hud-image-shape.svg')] mask-center mask-[length:cover] mask-no-repeat"></div>
|
||||||
|
@ -1,14 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="notifications">
|
<Modal v-for="notification in notifications.getNotifications" :key="notification.id" :isModalOpen="true" @modal:close="closeNotification(notification.id)">
|
||||||
<Modal v-for="notification in notifications.getNotifications" :key="notification.id" :isModalOpen="true" @modal:close="closeNotification(notification.id)">
|
<template #modalHeader v-if="notification.title">
|
||||||
<template #modalHeader v-if="notification.title">
|
<h3 class="m-0 font-medium shrink-0">{{ notification.title }}</h3>
|
||||||
<h3 class="m-0 font-medium shrink-0">{{ notification.title }}</h3>
|
</template>
|
||||||
</template>
|
<template #modalBody v-if="notification.message">
|
||||||
<template #modalBody v-if="notification.message">
|
<p class="m-[15px]">{{ notification.message }}</p>
|
||||||
<p class="modal-notif m-[15px]">{{ notification.message }}</p>
|
</template>
|
||||||
</template>
|
</Modal>
|
||||||
</Modal>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
@ -2,20 +2,20 @@
|
|||||||
<div class="flex h-full w-full relative">
|
<div class="flex h-full w-full relative">
|
||||||
<div class="w-[15%] flex flex-col relative">
|
<div class="w-[15%] flex flex-col relative">
|
||||||
<!-- Asset Categories -->
|
<!-- Asset Categories -->
|
||||||
<a class="category relative p-2.5 hover:cursor-pointer" :class="{ selected: selectedCategory === 'tiles' }" @click="() => (selectedCategory = 'tiles')">
|
<a class="relative p-2.5 hover:cursor-pointer" :class="{ selected: selectedCategory === 'tiles' }" @click="() => (selectedCategory = 'tiles')">
|
||||||
<span class="category-name">Tiles</span>
|
<span>Tiles</span>
|
||||||
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
||||||
</a>
|
</a>
|
||||||
<a class="category relative p-2.5 hover:cursor-pointer" :class="{ selected: selectedCategory === 'objects' }" @click="() => (selectedCategory = 'objects')">
|
<a class="relative p-2.5 hover:cursor-pointer" :class="{ selected: selectedCategory === 'objects' }" @click="() => (selectedCategory = 'objects')">
|
||||||
<span class="category-name">Objects</span>
|
<span>Objects</span>
|
||||||
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
||||||
</a>
|
</a>
|
||||||
<a class="category relative p-2.5 hover:cursor-pointer">
|
<a class="relative p-2.5 hover:cursor-pointer">
|
||||||
<span class="category-name">Loot</span>
|
<span>Loot</span>
|
||||||
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
||||||
</a>
|
</a>
|
||||||
<a class="category relative p-2.5 hover:cursor-pointer">
|
<a class="relative p-2.5 hover:cursor-pointer">
|
||||||
<span class="category-name">NPC's</span>
|
<span>NPC's</span>
|
||||||
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
@ -27,7 +27,7 @@
|
|||||||
<ObjectList :name="selectedCategory" v-if="selectedCategory === 'objects'" />
|
<ObjectList :name="selectedCategory" v-if="selectedCategory === 'objects'" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button class="back-to-top absolute bottom-2.5 min-w-[unset] w-[50px] h-[50px] rounded-lg bg-cyan bg-opacity-50 p-0 hover:bg-opacity-80" v-show="hasScrolled" @click="toTop">
|
<button class="left-[calc(50%_-_60px)] absolute bottom-2.5 min-w-[unset] w-[50px] h-[50px] rounded-lg bg-cyan bg-opacity-50 p-0 hover:bg-opacity-80" v-show="hasScrolled" @click="toTop">
|
||||||
<img class="absolute invert w-[30px] h-[30px] left-1/2 top-1/2 translate-x-[-50%] translate-y-[-50%] rotate-180" src="/assets/icons/zoneEditor/chevron.svg" alt="" />
|
<img class="absolute invert w-[30px] h-[30px] left-1/2 top-1/2 translate-x-[-50%] translate-y-[-50%] rotate-180" src="/assets/icons/zoneEditor/chevron.svg" alt="" />
|
||||||
</button>
|
</button>
|
||||||
<div class="absolute w-[1px] bg-cyan-200 h-full top-0 left-1/2"></div>
|
<div class="absolute w-[1px] bg-cyan-200 h-full top-0 left-1/2"></div>
|
||||||
@ -79,18 +79,6 @@ function toTop() {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|
||||||
button.back-to-top {
|
|
||||||
// @TODO: find Tailwind alternative as calc() doesnt work
|
|
||||||
left: calc(50% - 60px);
|
|
||||||
}
|
|
||||||
.modal-form {
|
|
||||||
&.asset-manager {
|
|
||||||
// @TODO: find Tailwind alternative as calc() doesnt work
|
|
||||||
width: calc(100% - 40px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.category,
|
.category,
|
||||||
.asset,
|
.asset,
|
||||||
.image-container {
|
.image-container {
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="object-manager h-full overflow-auto">
|
<div class="h-full overflow-auto">
|
||||||
<div class="image-container relative p-2.5 flex items-center justify-center h-[300px]">
|
<div class="relative p-2.5 flex items-center justify-center h-[300px]">
|
||||||
<img class="max-h-[280px]" :src="`${config.server_endpoint}/assets/objects/${selectedObject?.id}.png`" :alt="'Object ' + selectedObject?.id" />
|
<img class="max-h-[280px]" :src="`${config.server_endpoint}/assets/objects/${selectedObject?.id}.png`" :alt="'Object ' + selectedObject?.id" />
|
||||||
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-form asset-manager m-2.5 p-2.5 block">
|
<div class="m-2.5 p-2.5 block">
|
||||||
<form class="flex gap-2.5 flex-wrap" @submit.prevent="saveObject">
|
<form class="flex gap-2.5 flex-wrap" @submit.prevent="saveObject">
|
||||||
<div class="w-full flex flex-col mb-5">
|
<div class="w-full flex flex-col mb-5">
|
||||||
<label class="mb-1.5 font-titles" for="name">Name</label>
|
<label class="mb-1.5 font-titles" for="name">Name</label>
|
||||||
|
@ -1,18 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="asset add-new relative p-2.5 cursor-pointer flex gap-y-2.5 gap-x-5 flex-wrap">
|
<div class="relative p-2.5 cursor-pointer flex gap-y-2.5 gap-x-5 flex-wrap">
|
||||||
<label for="upload-asset" class="file-upload bg-cyan bg-opacity-50 border border-solid border-white rounded drop-shadow-20 py-1.5 px-[15px] inline-flex hover:bg-cyan hover:cursor-pointer">
|
<label for="upload-asset" class="bg-cyan bg-opacity-50 border border-solid border-white rounded drop-shadow-20 py-1.5 px-[15px] inline-flex hover:bg-cyan hover:cursor-pointer">
|
||||||
<input class="hidden" id="upload-asset" ref="objectUploadField" type="file" accept="image/png" multiple @change="handleFileUpload" />
|
<input class="hidden" id="upload-asset" ref="objectUploadField" type="file" accept="image/png" multiple @change="handleFileUpload" />
|
||||||
Upload object(s)
|
Upload object(s)
|
||||||
</label>
|
</label>
|
||||||
<input v-model="searchQuery" class="input-cyan search-field w-full" placeholder="Search..." @input="handleSearch" />
|
<input v-model="searchQuery" class="input-cyan w-full" placeholder="Search..." @input="handleSearch" />
|
||||||
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
||||||
</div>
|
</div>
|
||||||
<a class="asset relative p-2.5 cursor-pointer" :class="{ active: assetManagerStore.selectedObject?.id === object.id }" v-for="(object, index) in filteredObjects" :key="index" @click="assetManagerStore.setSelectedObject(object as Object)">
|
<a class="relative p-2.5 cursor-pointer" :class="{ active: assetManagerStore.selectedObject?.id === object.id }" v-for="(object, index) in filteredObjects" :key="index" @click="assetManagerStore.setSelectedObject(object as Object)">
|
||||||
<div class="asset-details flex items-center gap-2.5">
|
<div class="flex items-center gap-2.5">
|
||||||
<div class="h-[28px] w-[75px] max-w-[75px] flex justify-center">
|
<div class="h-[28px] w-[75px] max-w-[75px] flex justify-center">
|
||||||
<img class="h-[28px]" :src="`${config.server_endpoint}/assets/objects/${object.id}.png`" alt="Object" />
|
<img class="h-[28px]" :src="`${config.server_endpoint}/assets/objects/${object.id}.png`" alt="Object" />
|
||||||
</div>
|
</div>
|
||||||
<span class="asset-name flex-shrink-0">{{ object.name }}</span>
|
<span class="flex-shrink-0">{{ object.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
||||||
</a>
|
</a>
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="tile-manager h-full overflow-auto">
|
<div class="h-full overflow-auto">
|
||||||
<div class="image-container relative p-2.5 flex items-center justify-center h-[300px]">
|
<div class="relative p-2.5 flex items-center justify-center h-[300px]">
|
||||||
<img class="max-h-[280px]" :src="tileImageUrl" :alt="'Tile ' + selectedTile" />
|
<img class="max-h-[280px]" :src="tileImageUrl" :alt="'Tile ' + selectedTile" />
|
||||||
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-form asset-manager m-2.5 p-2.5 block">
|
<div class="m-2.5 p-2.5 block">
|
||||||
<form class="flex g-2.5 flex-wrap" @submit.prevent>
|
<form class="flex g-2.5 flex-wrap" @submit.prevent>
|
||||||
<div class="flex flex-col mb-5">
|
<div class="flex flex-col mb-5">
|
||||||
<label class="mb-1.5 font-titles" for="tags">Tags</label>
|
<label class="mb-1.5 font-titles" for="tags">Tags</label>
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="asset add-new relative p-2.5 cursor-pointer flex gap-y-2.5 gap-x-5 flex-wrap">
|
<div class="relative p-2.5 cursor-pointer flex gap-y-2.5 gap-x-5 flex-wrap">
|
||||||
<label for="upload-asset" class="file-upload bg-cyan bg-opacity-50 border border-solid border-white rounded drop-shadow-20 py-1.5 px-[15px] inline-flex hover:bg-cyan hover:cursor-pointer">
|
<label for="upload-asset" class="bg-cyan bg-opacity-50 border border-solid border-white rounded drop-shadow-20 py-1.5 px-[15px] inline-flex hover:bg-cyan hover:cursor-pointer">
|
||||||
<input class="hidden" id="upload-asset" ref="tileUploadField" type="file" accept="image/png" multiple @change="handleFileUpload" />
|
<input class="hidden" id="upload-asset" ref="tileUploadField" type="file" accept="image/png" multiple @change="handleFileUpload" />
|
||||||
Upload tile(s)
|
Upload tile(s)
|
||||||
</label>
|
</label>
|
||||||
<input v-model="searchQuery" class="input-cyan search-field w-full" placeholder="Search..." @input="handleSearch" />
|
<input v-model="searchQuery" class="input-cyan w-full" placeholder="Search..." @input="handleSearch" />
|
||||||
<div class="absolute left-0 bottom-0 w-full height-[1px] bg-cyan-200"></div>
|
<div class="absolute left-0 bottom-0 w-full height-[1px] bg-cyan-200"></div>
|
||||||
</div>
|
</div>
|
||||||
<a class="asset relative p-2.5 cursor-pointer flex gap-y-2.5 gap-x-5 flex-wrap" :class="{ active: assetManagerStore.selectedTile === tile }" v-for="(tile, index) in filteredTiles" :key="index" @click="assetManagerStore.setSelectedTile(tile)">
|
<a class="relative p-2.5 cursor-pointer flex gap-y-2.5 gap-x-5 flex-wrap" :class="{ active: assetManagerStore.selectedTile === tile }" v-for="(tile, index) in filteredTiles" :key="index" @click="assetManagerStore.setSelectedTile(tile)">
|
||||||
<div class="asset-details flex items-center gap-2.5">
|
<div class="flex items-center gap-2.5">
|
||||||
<!-- TODO make all img have same width so text aligns nicely -->
|
<!-- TODO make all img have same width so text aligns nicely -->
|
||||||
<img class="h-[28px]" :src="`${config.server_endpoint}/assets/tiles/${tile}.png`" alt="Tile" />
|
<img class="h-[28px]" :src="`${config.server_endpoint}/assets/tiles/${tile}.png`" alt="Tile" />
|
||||||
<span class="asset-name flex-shrink-0">{{ tile }}</span>
|
<span class="flex-shrink-0">{{ tile }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
<div class="absolute left-0 bottom-0 w-full h-[1px] bg-cyan-200"></div>
|
||||||
</a>
|
</a>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #modalBody>
|
<template #modalBody>
|
||||||
<div class="settings m-[15px]">
|
<div class="m-[15px]">
|
||||||
<form method="post" @submit.prevent="" class="inline">
|
<form method="post" @submit.prevent="" class="inline">
|
||||||
<div class="gap-2.5 flex flex-wrap">
|
<div class="gap-2.5 flex flex-wrap">
|
||||||
<div class="w-full flex flex-col mb-5">
|
<div class="w-full flex flex-col mb-5">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="character-select-screen bg-gray-300 relative">
|
<div class="bg-gray-300 relative">
|
||||||
<div class="absolute bg-[url('/assets/shapes/select-screen-bg-shape.svg')] bg-no-repeat bg-center w-full h-full"></div>
|
<div class="absolute bg-[url('/assets/shapes/select-screen-bg-shape.svg')] bg-no-repeat bg-center w-full h-full"></div>
|
||||||
<div class="ui-wrapper h-dvh flex flex-col justify-center items-center gap-[80px] px-[80px]">
|
<div class="ui-wrapper h-dvh flex flex-col justify-center items-center gap-[80px] px-[80px]">
|
||||||
<div class="filler"></div>
|
<div class="filler"></div>
|
||||||
@ -116,6 +116,8 @@ onBeforeUnmount(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
@import '@/assets/scss/main';
|
||||||
|
|
||||||
.characters-wrapper {
|
.characters-wrapper {
|
||||||
.character {
|
.character {
|
||||||
&.active {
|
&.active {
|
||||||
@ -134,6 +136,7 @@ onBeforeUnmount(() => {
|
|||||||
@apply gap-[15px];
|
@apply gap-[15px];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
@apply gap-[20px];
|
@apply gap-[20px];
|
||||||
}
|
}
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="game-container flex justify-center items-center h-dvh p-[30px] relative">
|
<div class="flex justify-center items-center h-dvh p-[30px] relative">
|
||||||
<GmTools v-if="isLoaded" />
|
<GmTools v-if="isLoaded" />
|
||||||
<GmPanel v-if="isLoaded" />
|
<GmPanel v-if="isLoaded" />
|
||||||
|
|
||||||
<Game class="game" :config="gameConfig" @create="createGame" v-if="!zoneEditorStore.active">
|
<Game :config="gameConfig" @create="createGame" v-if="!zoneEditorStore.active">
|
||||||
<Scene name="main" @preload="preloadScene" @create="createScene">
|
<Scene name="main" @preload="preloadScene" @create="createScene">
|
||||||
<div class="top-ui flex absolute justify-between left-0 right-0 top-[48px] mx-[48px] my-0" v-if="isLoaded">
|
<div class="flex absolute justify-between left-0 right-0 top-[48px] mx-[48px] my-0" v-if="isLoaded">
|
||||||
<Hud />
|
<Hud />
|
||||||
</div>
|
</div>
|
||||||
<div class="center-ui" v-if="isLoaded">
|
<div v-if="isLoaded">
|
||||||
<World />
|
<World />
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-ui flex absolute justify-between left-0 right-0 bottom-[100px] h-[100px] mx-[48px] my-0" v-if="isLoaded">
|
<div class="flex absolute justify-between left-0 right-0 bottom-[100px] h-[100px] mx-[48px] my-0" v-if="isLoaded">
|
||||||
<Chat />
|
<Chat />
|
||||||
<Menubar />
|
<Menubar />
|
||||||
</div>
|
</div>
|
||||||
</Scene>
|
</Scene>
|
||||||
</Game>
|
</Game>
|
||||||
<Game class="game" :config="gameConfig" @create="createGame" v-if="zoneEditorStore.active">
|
<Game :config="gameConfig" @create="createGame" v-if="zoneEditorStore.active">
|
||||||
<Scene name="main" @preload="preloadScene" @create="createScene">
|
<Scene name="main" @preload="preloadScene" @create="createScene">
|
||||||
<ZoneEditor v-if="isLoaded" />
|
<ZoneEditor v-if="isLoaded" />
|
||||||
</Scene>
|
</Scene>
|
||||||
|
@ -1,25 +1,25 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="login-screen bg-gray-300">
|
<div class="bg-gray-300">
|
||||||
<div class="absolute bg-[url('/assets/shapes/select-screen-bg-shape.svg')] bg-no-repeat bg-center w-full h-full z-10 pointer-events-none"></div>
|
<div class="absolute bg-[url('/assets/shapes/select-screen-bg-shape.svg')] bg-no-repeat bg-center w-full h-full z-10 pointer-events-none"></div>
|
||||||
<div class="content-wrapper z-20 w-full h-dvh flex items-center justify-between flex-col relative">
|
<div class="z-20 w-full h-dvh flex items-center justify-between flex-col relative">
|
||||||
<div class="filler"></div>
|
<div class="filler"></div>
|
||||||
<h1 class="main-title mt-[115px] text-center text-6xl">NEW QUEST</h1>
|
<h1 class="mt-[115px] text-center text-6xl">NEW QUEST</h1>
|
||||||
<form @submit.prevent="loginFunc">
|
<form @submit.prevent="loginFunc">
|
||||||
<div class="content-elements my-[80px] mx-0 w-full flex flex-col gap-[24px]">
|
<div class="my-[80px] mx-0 w-full flex flex-col gap-[24px]">
|
||||||
<div class="login-form w-full grid gap-[15px]">
|
<div class="w-full grid gap-[15px]">
|
||||||
<div class="form-field flex flex-col bg-white bg-opacity-50 rounded-[3px] border border-solid border-gray-50 sm:min-w-[500px] sm:w-unset w-full my-0 mx-auto">
|
<div class="flex flex-col bg-white bg-opacity-50 rounded-[3px] border border-solid border-gray-50 sm:min-w-[500px] sm:w-unset w-full my-0 mx-auto">
|
||||||
<label class="text-black bg-white bg-opacity-50 p-1 text-sm rounded-t-[3px]" for="username">Username</label>
|
<label class="text-black bg-white bg-opacity-50 p-1 text-sm rounded-t-[3px]" for="username">Username</label>
|
||||||
<input class="p-1 text-sm focus-visible:outline-none" id="username" v-model="username" type="text" name="username" required autofocus />
|
<input class="p-1 text-sm focus-visible:outline-none" id="username" v-model="username" type="text" name="username" required autofocus />
|
||||||
</div>
|
</div>
|
||||||
<div class="form-field flex flex-col bg-white bg-opacity-50 rounded-[3px] border border-solid border-gray-50 sm:min-w-[500px] sm:w-unset w-full my-0 mx-auto">
|
<div class="flex flex-col bg-white bg-opacity-50 rounded-[3px] border border-solid border-gray-50 sm:min-w-[500px] sm:w-unset w-full my-0 mx-auto">
|
||||||
<label class="text-black bg-white bg-opacity-50 p-1 text-sm rounded-t-[3px]" for="password">Password</label>
|
<label class="text-black bg-white bg-opacity-50 p-1 text-sm rounded-t-[3px]" for="password">Password</label>
|
||||||
<input class="p-1 text-sm focus-visible:outline-none" id="password" v-model="password" type="password" name="password" required />
|
<input class="p-1 text-sm focus-visible:outline-none" id="password" v-model="password" type="password" name="password" required />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row-buttons flex justify-center sm:gap-[15px] gap-[8px]">
|
<div class="flex justify-center sm:gap-[15px] gap-[8px]">
|
||||||
<button class="button btn-cyan py-2 px-0 min-w-[100px]" type="submit"><span class="m-auto">PLAY</span></button>
|
<button class="btn-cyan py-2 px-0 min-w-[100px]" type="submit"><span class="m-auto">PLAY</span></button>
|
||||||
<button class="button btn-cyan py-2 px-0 min-w-[100px]" type="button" @click.prevent="registerFunc"><span class="m-auto">REGISTER</span></button>
|
<button class="btn-cyan py-2 px-0 min-w-[100px]" type="button" @click.prevent="registerFunc"><span class="m-auto">REGISTER</span></button>
|
||||||
<button class="button btn-cyan py-2 px-0 min-w-[100px]"><span class="m-auto">CREDITS</span></button>
|
<button class="btn-cyan py-2 px-0 min-w-[100px]"><span class="m-auto">CREDITS</span></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user