diff --git a/client/src/services/Dragonroll.js b/client/src/services/Dragonroll.js
index fa5c41f7..1183be35 100644
--- a/client/src/services/Dragonroll.js
+++ b/client/src/services/Dragonroll.js
@@ -6,6 +6,7 @@ import { backendUrl } from './BackendURL';
import { GetUser } from './User';
import { ExitGame } from './Game';
import { GetModule } from './Modules';
+import { GetMap, LoadMap, UpdateMapList } from './Map';
let emitter;
@@ -30,21 +31,16 @@ let GetCampaign = () => { return currentCampaign; };
let GetClient = () => { return currentPlayer; };
let chatMessageId = 0;
-const chat = ref([
- /* {
- id: 1,
- author: "66ae8aea3e78bb669e25010d",
- chunks: [
- {
- id: 1,
- type: "text",
- content: "Hola test"
- }
- ]
- } */
-]);
+const chat = ref([]);
let GetChatRef = () => chat;
+socket.on('change_map', data => {
+ console.log("ChangeMap")
+ UpdateMapList().then(() => {
+ LoadMap(GetMap(data.id));
+ });
+})
+
socket.on('update-players', data => {
players.value = [];
Object.keys(data).forEach((key) => {
@@ -80,6 +76,10 @@ socket.on('message', (data) => {
});
});
+function _SendMap(id){
+ socket.emit('send_map', {id});
+}
+
function SendMessage(data){
socket.emit('message', data);
}
@@ -131,5 +131,6 @@ export {
GetSystem,
GetChatRef,
- SendMessage
+ SendMessage,
+ _SendMap
};
\ No newline at end of file
diff --git a/client/src/services/Map.js b/client/src/services/Map.js
index 4c027ce8..8f78a6fd 100644
--- a/client/src/services/Map.js
+++ b/client/src/services/Map.js
@@ -1,7 +1,7 @@
-import { initCustomFormatter, ref } from 'vue';
+import { initCustomFormatter, ref, toRaw } from 'vue';
import Api from '@/services/Api'
-import { GetCampaign } from './Dragonroll';
+import { _SendMap, GetCampaign } from './Dragonroll';
import { backendUrl } from './BackendURL';
function dataURLtoFile(dataurl, filename) {
@@ -144,6 +144,9 @@ let imageData = [];
const currentMapId = ref('');
let GetMapId = () => currentMapId;
+const currentGlobalMapId = ref('');
+let GetGlobalMapId = () => currentGlobalMapId;
+
let backgroundColor = ref('#0f0f0f');
function Draw(){
@@ -199,11 +202,21 @@ function ImportDD2VTT(data){
const mapList = ref([]);
let GetMapList = () => mapList;
+function GetMap(id){
+ let map = undefined;
+ mapList.value.forEach((m) => {
+ if(m._id == id) map = m;
+ });
+ return toRaw(map);
+}
+
function UpdateMapList(){
- Api().get('/maps/list?campaign=' + GetCampaign()._id).then(response => {
- mapList.value = response.data.data;
- console.log(mapList.value);
- }).catch((err) => console.log(err));
+ return new Promise((resolve, reject) => {
+ Api().get('/maps/list?campaign=' + GetCampaign()._id).then(response => {
+ mapList.value = response.data.data;
+ resolve();
+ }).catch((err) => console.log(err));
+ })
}
function ReloadImages(){
@@ -267,6 +280,11 @@ function CreateMap(){
}
+function SendMap(id){
+ currentGlobalMapId.value = id;
+ _SendMap(id);
+}
+
let GetBackgroundColor = () => backgroundColor;
function ChangeBackgroundColor(color){
backgroundColor.value = color; // XD
@@ -287,9 +305,12 @@ export {
GetBackgroundColor,
ChangeBackgroundColor,
GetMapId,
+ GetGlobalMapId,
UpdateMapList,
GetMapList,
LoadMap,
RenameMap,
+ GetMap,
+ SendMap
};
\ No newline at end of file
diff --git a/client/src/services/Windows.js b/client/src/services/Windows.js
index 1ff810d6..326eb999 100644
--- a/client/src/services/Windows.js
+++ b/client/src/services/Windows.js
@@ -94,6 +94,21 @@ const defValues = {
id: 'combat_window',
title: "Combat",
close: true
+ },
+ 'entity_window': {
+ id: 'entity_window',
+ title: "Entities",
+ close: true
+ },
+ 'characters_window': {
+ id: 'characters_window',
+ title: "Characters",
+ close: true
+ },
+ 'compendium_window': {
+ id: 'compendium_window',
+ title: "Compendium",
+ close: true
}
}
diff --git a/client/src/views/managers/GameManager.vue b/client/src/views/managers/GameManager.vue
index 114e1928..63820e9a 100644
--- a/client/src/views/managers/GameManager.vue
+++ b/client/src/views/managers/GameManager.vue
@@ -39,6 +39,18 @@ function ToggleGrid(){
}
+function OpenEntityWindow(){
+ CreateWindow('entity_window');
+}
+
+function OpenCharactersWindow(){
+ CreateWindow('characters_window');
+}
+
+function OpenCompendiumWindow(){
+ CreateWindow('compendium_window');
+}
+
watch(game, () => {
if(game.value && in_game.value){
AddSound(game.value);
@@ -63,14 +75,15 @@ watch(game, () => {