diff --git a/src/components/utilities/zoneEditor/Toolbar.vue b/src/components/utilities/zoneEditor/Toolbar.vue
index 87bcb95..e3182f0 100644
--- a/src/components/utilities/zoneEditor/Toolbar.vue
+++ b/src/components/utilities/zoneEditor/Toolbar.vue
@@ -34,7 +34,7 @@
-
+
@@ -56,7 +56,7 @@ const props = defineProps({
layer: Phaser.Tilemaps.TilemapLayer
})
const scene = useScene()
-const emit = defineEmits(['move', 'eraser', 'pencil'])
+const emit = defineEmits(['move', 'eraser', 'pencil', 'save'])
// drawMode
const drawMode = ref('tile')
diff --git a/src/components/utilities/zoneEditor/ZoneEditor.vue b/src/components/utilities/zoneEditor/ZoneEditor.vue
index c142531..808c257 100644
--- a/src/components/utilities/zoneEditor/ZoneEditor.vue
+++ b/src/components/utilities/zoneEditor/ZoneEditor.vue
@@ -1,7 +1,7 @@
-
+
@@ -69,6 +69,17 @@ function eraser(tile: Phaser.Tilemaps.Tile) {
function pencil(tile: Phaser.Tilemaps.Tile) {
if (zoneEditorStore.selectedTile === null) return
layer.putTileAt(zoneEditorStore.selectedTile, tile.x, tile.y)
+ zoneEditorStore.updateTile(tile.x, tile.y, zoneEditorStore.selectedTile);
+}
+
+function save() {
+ socket.connection.emit('gm:zone_editor:zone:save', {
+ zoneId: socket.character.zoneId,
+ name: zoneEditorStore.name,
+ width: zoneEditorStore.width,
+ height: zoneEditorStore.height,
+ tiles: zoneEditorStore.tiles,
+ })
}
onBeforeUnmount(() => {
diff --git a/src/components/utilities/zoneEditor/ZoneSettings.vue b/src/components/utilities/zoneEditor/ZoneSettings.vue
index c539f8b..2b5ca73 100644
--- a/src/components/utilities/zoneEditor/ZoneSettings.vue
+++ b/src/components/utilities/zoneEditor/ZoneSettings.vue
@@ -40,7 +40,6 @@ const name = ref(zoneEditorStore.name)
const width = ref(zoneEditorStore.width)
const height = ref(zoneEditorStore.height)
-
watch(name, (value) => {
zoneEditorStore.setName(value)
})
diff --git a/src/stores/zoneEditor.ts b/src/stores/zoneEditor.ts
index 11126d1..daca3f8 100644
--- a/src/stores/zoneEditor.ts
+++ b/src/stores/zoneEditor.ts
@@ -30,6 +30,9 @@ export const useZoneEditorStore = defineStore('zoneEditor', {
setTiles(tiles: number[][]) {
this.tiles = tiles
},
+ updateTile(x: number, y: number, tile: number) {
+ this.tiles[y][x] = tile
+ },
setTool(tool: string) {
this.tool = tool
},