Tile
@@ -75,8 +75,8 @@ const scene = useScene()
const emit = defineEmits(['move', 'eraser', 'pencil', 'save'])
// track select state
-let selectPencilOpen = ref(false);
-let selectEraserOpen = ref(false);
+let selectPencilOpen = ref(false)
+let selectEraserOpen = ref(false)
// drawMode
function setDrawMode(value: string) {
diff --git a/src/components/utilities/zoneEditor/ZoneEditor.vue b/src/components/utilities/zoneEditor/ZoneEditor.vue
index 18e7e11..fcd532f 100644
--- a/src/components/utilities/zoneEditor/ZoneEditor.vue
+++ b/src/components/utilities/zoneEditor/ZoneEditor.vue
@@ -2,11 +2,11 @@
-
+
-
-
-
+
+
+
@@ -38,7 +38,6 @@ let scene = useScene()
const socket = useSocketStore()
const zoneEditorStore = useZoneEditorStore()
-
// Tile tilemap
const tileMapData = new Phaser.Tilemaps.MapData({
width: zoneEditorStore.width,
@@ -48,18 +47,17 @@ const tileMapData = new Phaser.Tilemaps.MapData({
orientation: Phaser.Tilemaps.Orientation.ISOMETRIC,
format: Phaser.Tilemaps.Formats.ARRAY_2D
})
-let tileTilemap = new Phaser.Tilemaps.Tilemap(scene, tileMapData);
+let tileTilemap = new Phaser.Tilemaps.Tilemap(scene, tileMapData)
let tilesImg = tileTilemap.addTilesetImage('default', 'tiles')
let exampleTiles = tileTilemap.createBlankLayer('exampleTiles', tilesImg as Tileset, 0, config.tile_size.y) as TilemapLayer
const exampleTilesArray = Array.from({ length: zoneEditorStore.width }, () => Array.from({ length: zoneEditorStore.height }, () => 1))
-onMounted(() => {
-})
- const pos = tileToWorldXY(exampleTiles, 1, 1);
- const pos2 = tileToWorldXY(exampleTiles, 1, 2);
- const pos3 = tileToWorldXY(exampleTiles, 2, 1);
-console.log(pos);
+onMounted(() => {})
+const pos = tileToWorldXY(exampleTiles, 1, 1)
+const pos2 = tileToWorldXY(exampleTiles, 1, 2)
+const pos3 = tileToWorldXY(exampleTiles, 2, 1)
+console.log(pos)
// center camera
const centerY = (tileTilemap.height * tileTilemap.tileHeight) / 2
const centerX = (tileTilemap.width * tileTilemap.tileWidth) / 2
@@ -91,12 +89,12 @@ onBeforeMount(() => {
function eraser(tile: Phaser.Tilemaps.Tile) {
if (zoneEditorStore.drawMode === 'tile') {
tiles.putTileAt(0, tile.x, tile.y)
- zoneEditorStore.updateTile(tile.x, tile.y, 0);
+ zoneEditorStore.updateTile(tile.x, tile.y, 0)
}
if (zoneEditorStore.drawMode === 'wall') {
- walls.putTileAt(0, tile.x, tile.y )
- zoneEditorStore.updateWall(tile.x, tile.y, 0);
+ walls.putTileAt(0, tile.x, tile.y)
+ zoneEditorStore.updateWall(tile.x, tile.y, 0)
}
}
@@ -104,14 +102,14 @@ function pencil(tile: Phaser.Tilemaps.Tile) {
if (zoneEditorStore.drawMode === 'tile') {
if (zoneEditorStore.selectedTile === null) return
tiles.putTileAt(zoneEditorStore.selectedTile, tile.x, tile.y)
- zoneEditorStore.setTiles(tile.x, tile.y, zoneEditorStore.selectedTile);
+ zoneEditorStore.setTiles(tile.x, tile.y, zoneEditorStore.selectedTile)
}
if (zoneEditorStore.drawMode === 'wall') {
// @TODO fix position
if (zoneEditorStore.selectedWall === null) return
walls.putTileAt(zoneEditorStore.selectedWall, tile.x, tile.y)
- zoneEditorStore.updateWall(tile.x, tile.y, zoneEditorStore.selectedWall);
+ zoneEditorStore.updateWall(tile.x, tile.y, zoneEditorStore.selectedWall)
}
}
@@ -127,7 +125,7 @@ function save() {
}
onBeforeUnmount(() => {
- zoneEditorStore.reset();
+ zoneEditorStore.reset()
})
/**
diff --git a/src/components/utilities/zoneEditor/ZoneSettings.vue b/src/components/utilities/zoneEditor/ZoneSettings.vue
index 36e75a6..61441c0 100644
--- a/src/components/utilities/zoneEditor/ZoneSettings.vue
+++ b/src/components/utilities/zoneEditor/ZoneSettings.vue
@@ -55,4 +55,4 @@ watch(width, (value) => {
watch(height, (value) => {
zoneEditorStore.setHeight(parseInt(value))
})
-
\ No newline at end of file
+
diff --git a/src/screens/Game.vue b/src/screens/Game.vue
index 2b03ee4..af0123a 100644
--- a/src/screens/Game.vue
+++ b/src/screens/Game.vue
@@ -4,16 +4,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/services/zone.ts b/src/services/zone.ts
index b62794f..6d015d0 100644
--- a/src/services/zone.ts
+++ b/src/services/zone.ts
@@ -23,6 +23,4 @@ export function tileToWorldXY(layer: Phaser.Tilemaps.TilemapLayer, pos_x: number
return { position_x, position_y }
}
-export function generateTilemap(scene: Phaser.Scene, width: number, height: number) {
-
-}
\ No newline at end of file
+export function generateTilemap(scene: Phaser.Scene, width: number, height: number) {}
diff --git a/src/stores/assetManager.ts b/src/stores/assetManager.ts
new file mode 100644
index 0000000..691ff2d
--- /dev/null
+++ b/src/stores/assetManager.ts
@@ -0,0 +1,20 @@
+import { defineStore } from 'pinia'
+
+export const useAssetManagerStore = defineStore('assetManager', {
+ state: () => ({
+ tileList: [] as string[],
+ selectedTile: ''
+ }),
+ actions: {
+ setTileList(tiles: string[]) {
+ this.tileList = tiles
+ },
+ setSelectedTile(tile: string) {
+ this.selectedTile = tile
+ },
+ reset() {
+ this.tileList = []
+ this.selectedTile = ''
+ }
+ }
+})
diff --git a/src/stores/zoneEditor.ts b/src/stores/zoneEditor.ts
index 8d2ade2..39fe5f7 100644
--- a/src/stores/zoneEditor.ts
+++ b/src/stores/zoneEditor.ts
@@ -10,7 +10,7 @@ export const useZoneEditorStore = defineStore('zoneEditor', {
decorations: [] as number[][],
tool: 'move',
drawMode: 'tile',
- selectedTile: null,
+ selectedTile: '',
selectedWall: null,
selectedDecoration: null,
isSettingsModalShown: false
@@ -46,7 +46,7 @@ export const useZoneEditorStore = defineStore('zoneEditor', {
setDrawMode(mode: string) {
this.drawMode = mode
},
- setSelectedTile(tile: any) {
+ setSelectedTile(tile: string) {
this.selectedTile = tile
},
setSelectedWall(wall: any) {
@@ -65,7 +65,7 @@ export const useZoneEditorStore = defineStore('zoneEditor', {
this.tiles = []
this.tool = 'move'
this.drawMode = 'tile'
- this.selectedTile = null
+ this.selectedTile = ''
this.selectedWall = null
this.selectedDecoration = null
this.isSettingsModalShown = false
@@ -77,4 +77,4 @@ export const useZoneEditorStore = defineStore('zoneEditor', {
* Resources:
* https://www.html5gamedevs.com/topic/21908-phaser-is-there-any-tutorial-on-how-to-do-an-isometric-game/
* http://murdochcarpenter.com/isometric-starling-part-i/
- */
\ No newline at end of file
+ */
diff --git a/src/types.ts b/src/types.ts
index 8748651..93e8fef 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -5,62 +5,62 @@ export type Notification = {
// User model
export type User = {
- id: number;
- username: string;
- password: string;
- characters: Character[];
-};
+ id: number
+ username: string
+ password: string
+ characters: Character[]
+}
// Character model
export type Character = {
- id: number;
- userId: number;
- user: User;
- name: string;
- hitpoints: number;
- mana: number;
- level: number;
- experience: number;
- role: string;
- position_x: number;
- position_y: number;
- rotation: number;
- zoneId: number;
- zone: Zone;
- chats: Chat[];
-};
+ id: number
+ userId: number
+ user: User
+ name: string
+ hitpoints: number
+ mana: number
+ level: number
+ experience: number
+ role: string
+ position_x: number
+ position_y: number
+ rotation: number
+ zoneId: number
+ zone: Zone
+ chats: Chat[]
+}
// Zone model
export type Zone = {
- id: number;
- name: string;
- width: number;
- height: number;
- tiles: number[][];
- walls: number[][];
- decorations: ZoneDecoration[];
- characters: Character[];
- chats: Chat[];
- createdAt: Date;
- updatedAt: Date;
-};
+ id: number
+ name: string
+ width: number
+ height: number
+ tiles: number[][]
+ walls: number[][]
+ decorations: ZoneDecoration[]
+ characters: Character[]
+ chats: Chat[]
+ createdAt: Date
+ updatedAt: Date
+}
export type ZoneDecoration = {
- id: number;
- zoneId: number;
- zone: Zone;
- type: number;
- position_x: number;
- position_y: number;
+ id: number
+ zoneId: number
+ zone: Zone
+ type: number
+ position_x: number
+ position_y: number
}
// Chat model
export type Chat = {
- id: number;
- characterId: number;
- character: Character;
- zoneId: number;
- zone: Zone;
- message: string;
- createdAt: Date;
-};
+ id: number
+ characterId: number
+ character: Character
+ zoneId: number
+ zone: Zone
+ message: string
+ createdAt: Date
+}