forked from noxious/client
Worked on creating new characters
This commit is contained in:
parent
da728a1fc6
commit
8cd0e9254a
@ -49,12 +49,12 @@ watch (() => zoneStore.tiles, () => { // @TODO : change to tiles for when loadin
|
|||||||
|
|
||||||
// Load the zone from the server
|
// Load the zone from the server
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
socket.connection?.emit('character:connect');
|
socket.getConnection.emit('character:connect');
|
||||||
socket.connection?.emit('character:zone:load');
|
socket.getConnection.emit('character:zone:load');
|
||||||
})
|
})
|
||||||
|
|
||||||
// Listen for the zone event from the server and load the zone
|
// Listen for the zone event from the server and load the zone
|
||||||
socket.connection?.on('character:zone:load', (data) => {
|
socket.getConnection.on('character:zone:load', (data) => {
|
||||||
console.log('character:zone:load', data);
|
console.log('character:zone:load', data);
|
||||||
zoneStore.loadTiles(data.zone.tiles)
|
zoneStore.loadTiles(data.zone.tiles)
|
||||||
/**
|
/**
|
||||||
@ -66,22 +66,22 @@ socket.connection?.on('character:zone:load', (data) => {
|
|||||||
// console.log(data.players[1]); // key is user id
|
// console.log(data.players[1]); // key is user id
|
||||||
//
|
//
|
||||||
// // remove self from the players list
|
// // remove self from the players list
|
||||||
// delete data.players[socket.connection?.id];
|
// delete data.players[socket.getConnection.id];
|
||||||
//
|
//
|
||||||
// zoneStore.addPlayers(data.players);
|
// zoneStore.addPlayers(data.players);
|
||||||
})
|
})
|
||||||
|
|
||||||
// Listen for player join events
|
// Listen for player join events
|
||||||
socket.connection?.on('player_join', (data) => {
|
socket.getConnection.on('player_join', (data) => {
|
||||||
console.log('player_join', data)
|
console.log('player_join', data)
|
||||||
if (data.id === socket.connection?.id) {
|
if (data.id === socket.getConnection.id) {
|
||||||
console.log('self');
|
console.log('self');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
zoneStore.addPlayer(data);
|
zoneStore.addPlayer(data);
|
||||||
})
|
})
|
||||||
|
|
||||||
socket.connection?.on('ping', (data) => {
|
socket.getConnection.on('ping', (data) => {
|
||||||
console.log('ping', data)
|
console.log('ping', data)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1,32 +1,42 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!-- radio controls with characters that belongs to user in plain html -->
|
|
||||||
<div id="characters-wrapper">
|
<div id="characters-wrapper">
|
||||||
<div id="characters">
|
<div id="characters">
|
||||||
<h1>Select your character</h1>
|
<h1>Select your character</h1>
|
||||||
<div>
|
<div>
|
||||||
<input type="radio" id="character1" name="character" value="character1">
|
<div v-for="character in characters" :key="character.id">
|
||||||
<label for="character1">
|
<input type="radio" :id="character.id" name="character" :value="character.id">
|
||||||
Weed
|
<label :for="character.id">
|
||||||
</label>
|
<img src="/assets/avatar/default/base_right_down.png" />
|
||||||
<input type="radio" id="character2" name="character" value="character2">
|
{{ character.name }}
|
||||||
<label for="character2">
|
</label>
|
||||||
Ethereal
|
</div>
|
||||||
</label>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button>Play</button>
|
<button>Play</button>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
<Create />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useSocketStore } from '@/stores/socket'
|
import { useSocketStore } from '@/stores/socket'
|
||||||
|
import { ref } from 'vue'
|
||||||
|
import Create from '@/components/screens/partials/characters/Create.vue'
|
||||||
|
|
||||||
const socket = useSocketStore();
|
const socket = useSocketStore();
|
||||||
socket.connection.emit('characters:get');
|
const characters = ref([]);
|
||||||
|
socket.getConnection.emit('character:list');
|
||||||
|
|
||||||
|
socket.getConnection.on('character:list', (data: any) => {
|
||||||
|
console.log(data);
|
||||||
|
characters.value = data;
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { onMounted, ref } from 'vue'
|
import { onMounted, ref } from 'vue'
|
||||||
import { useSocketStore } from '@/stores/socket.ts'
|
import { useSocketStore } from '@/stores/socket.ts'
|
||||||
import {login, register} from '@/services/authService'
|
import {login, register} from '@/services/authentication.ts'
|
||||||
import { useCookies } from '@vueuse/integrations/useCookies'
|
import { useCookies } from '@vueuse/integrations/useCookies'
|
||||||
|
|
||||||
const bgm = ref('bgm');
|
const bgm = ref('bgm');
|
||||||
|
28
src/components/screens/partials/characters/Create.vue
Normal file
28
src/components/screens/partials/characters/Create.vue
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<template>
|
||||||
|
<form method="post" @submit.prevent="create">
|
||||||
|
<h1>Create your character</h1>
|
||||||
|
<div>
|
||||||
|
<label for="name">Name</label>
|
||||||
|
<input v-model="name" type="text" name="name" id="name">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<button>Create</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { useSocketStore } from '@/stores/socket'
|
||||||
|
import { ref, defineEmits } from 'vue'
|
||||||
|
|
||||||
|
const socket = useSocketStore();
|
||||||
|
|
||||||
|
// const emit = defineEmits(['character:create']);
|
||||||
|
let name: any = ref('');
|
||||||
|
|
||||||
|
function create() {
|
||||||
|
socket.getConnection.emit('character:create', { name: name.value });
|
||||||
|
// emit('character:create');
|
||||||
|
name.value = '';
|
||||||
|
}
|
||||||
|
</script>
|
@ -44,7 +44,7 @@ function onPointerClick(pointer: Phaser.Input.Pointer) {
|
|||||||
position.x = worldPoint.x + config.tile_size.y;
|
position.x = worldPoint.x + config.tile_size.y;
|
||||||
position.y = worldPoint.y;
|
position.y = worldPoint.y;
|
||||||
|
|
||||||
socket.connection?.emit('move', { x: position.x, y: position.y });
|
socket.getConnection.emit('move', { x: position.x, y: position.y });
|
||||||
}
|
}
|
||||||
|
|
||||||
//Directions for player sprites + animations
|
//Directions for player sprites + animations
|
||||||
@ -57,14 +57,13 @@ function onPointerClick(pointer: Phaser.Input.Pointer) {
|
|||||||
} else if (px > 0 && py < 0) {
|
} else if (px > 0 && py < 0) {
|
||||||
console.log('top right');
|
console.log('top right');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!props.player) {
|
if (!props.player) {
|
||||||
scene.input.on(Phaser.Input.Events.POINTER_UP, onPointerClick);
|
scene.input.on(Phaser.Input.Events.POINTER_UP, onPointerClick);
|
||||||
}
|
}
|
||||||
|
|
||||||
socket.connection?.on('player_moved', (data) => {
|
socket.getConnection.on('player_moved', (data: any) => {
|
||||||
console.log('player_moved', data);
|
console.log('player_moved', data);
|
||||||
|
|
||||||
if (data.id !== props.player?.id) {
|
if (data.id !== props.player?.id) {
|
||||||
|
@ -9,7 +9,7 @@ export const useSocketStore: StoreDefinition<any> = defineStore('socket', {
|
|||||||
character: null as any,
|
character: null as any,
|
||||||
}),
|
}),
|
||||||
getters: {
|
getters: {
|
||||||
getConnection: (state: any) => state.connection,
|
getConnection: (state: any) => state.connection as Socket,
|
||||||
getCharacter: (state: any) => state.character,
|
getCharacter: (state: any) => state.character,
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
9
src/types/TCharacter.ts
Normal file
9
src/types/TCharacter.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import { z } from "zod";
|
||||||
|
|
||||||
|
const CharacterObject = z.object({
|
||||||
|
name: z.string(),
|
||||||
|
});
|
||||||
|
|
||||||
|
type TCharacter = z.infer<typeof CharacterObject>;
|
||||||
|
|
||||||
|
export { CharacterObject, type TCharacter };
|
@ -4,6 +4,6 @@ const UserObject = z.object({
|
|||||||
username: z.string(),
|
username: z.string(),
|
||||||
});
|
});
|
||||||
|
|
||||||
type UserType = z.infer<typeof UserObject>;
|
type TUser = z.infer<typeof UserObject>;
|
||||||
|
|
||||||
export { UserObject, type UserType };
|
export { UserObject, type TUser };
|
Loading…
x
Reference in New Issue
Block a user