Map editor WIP
This commit is contained in:
@ -32,7 +32,7 @@ export default class MapRequestEvent extends BaseEvent {
|
||||
}
|
||||
|
||||
// Populate map with mapEventTiles and placedMapObjects
|
||||
await mapRepository.getEntityManager().populate(map, ['mapEventTiles', 'placedMapObjects'])
|
||||
await mapRepository.getEntityManager().populate(map, ['mapEffects', 'mapEventTiles', 'placedMapObjects', 'placedMapObjects.mapObject'])
|
||||
|
||||
return callback(map)
|
||||
} catch (error: any) {
|
||||
|
@ -27,10 +27,7 @@ interface IPayload {
|
||||
toRotation: number
|
||||
}
|
||||
}[]
|
||||
mapEffects: {
|
||||
effect: string
|
||||
strength: number
|
||||
}[]
|
||||
mapEffects: MapEffect[]
|
||||
placedMapObjects: PlacedMapObject[]
|
||||
}
|
||||
|
||||
@ -51,13 +48,16 @@ export default class MapUpdateEvent extends BaseEvent {
|
||||
return callback(null)
|
||||
}
|
||||
|
||||
let map = await MapRepository.getById(data.mapId)
|
||||
let mapRepository = new MapRepository()
|
||||
let map = await mapRepository.getById(data.mapId)
|
||||
|
||||
if (!map) {
|
||||
this.logger.info(`User ${character!.getId()} tried to update map ${data.mapId} but it does not exist.`)
|
||||
return callback(null)
|
||||
}
|
||||
|
||||
await mapRepository.getEntityManager().populate(map, ['*'])
|
||||
|
||||
// Validation logic remains the same
|
||||
if (data.tiles.length > data.height) {
|
||||
data.tiles = data.tiles.slice(0, data.height)
|
||||
@ -69,7 +69,6 @@ export default class MapUpdateEvent extends BaseEvent {
|
||||
}
|
||||
|
||||
data.mapEventTiles = data.mapEventTiles.filter((tile) => tile.positionX >= 0 && tile.positionX < data.width && tile.positionY >= 0 && tile.positionY < data.height)
|
||||
|
||||
data.placedMapObjects = data.placedMapObjects.filter((obj) => obj.positionX >= 0 && obj.positionX < data.width && obj.positionY >= 0 && obj.positionY < data.height)
|
||||
|
||||
// Clear existing collections
|
||||
@ -83,7 +82,7 @@ export default class MapUpdateEvent extends BaseEvent {
|
||||
|
||||
if (tile.teleport) {
|
||||
const teleport = new MapEventTileTeleport()
|
||||
.setToMap(await MapRepository.getById(tile.teleport.toMapId))
|
||||
.setToMap((await mapRepository.getById(tile.teleport.toMapId))!)
|
||||
.setToPositionX(tile.teleport.toPositionX)
|
||||
.setToPositionY(tile.teleport.toPositionY)
|
||||
.setToRotation(tile.teleport.toRotation)
|
||||
@ -116,7 +115,9 @@ export default class MapUpdateEvent extends BaseEvent {
|
||||
await map.setName(data.name).setWidth(data.width).setHeight(data.height).setTiles(data.tiles).setPvp(data.pvp).setUpdatedAt(new Date()).save()
|
||||
|
||||
// Reload map from database to get fresh data
|
||||
map = await MapRepository.getById(data.mapId)
|
||||
mapRepository = new MapRepository()
|
||||
map = await mapRepository.getById(data.mapId)
|
||||
await mapRepository.getEntityManager().populate(map!, ['*'])
|
||||
|
||||
if (!map) {
|
||||
this.logger.info(`User ${character!.getId()} tried to update map ${data.mapId} but it does not exist after update.`)
|
||||
|
Reference in New Issue
Block a user