mod: clean up onMapChunkEventListeners.ts
This commit is contained in:
parent
609f68408e
commit
403ca0dd2e
1 changed files with 13 additions and 43 deletions
|
|
@ -36,57 +36,26 @@ function mapTilesUpdateDebounce(
|
||||||
data => {
|
data => {
|
||||||
|
|
||||||
// tile dictionary update
|
// tile dictionary update
|
||||||
data.tileDictionary ??= {
|
if (data.tileDictionary == undefined) {
|
||||||
tilesXY: {},
|
data.tileDictionary = {
|
||||||
protos: {},
|
tilesXY: {},
|
||||||
|
protos: {},
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// let maxX = 0
|
|
||||||
// let minX = 0
|
|
||||||
// let maxY = 0
|
|
||||||
// let minY = 0
|
|
||||||
// for (const tile of tiles) {
|
|
||||||
// //@formatter:off
|
|
||||||
// if (tile.position.x < minX) minX = tile.position.x
|
|
||||||
// if (tile.position.x > maxX) maxX = tile.position.x
|
|
||||||
// if (tile.position.y > minY) minY = tile.position.y
|
|
||||||
// if (tile.position.y > maxY) maxY = tile.position.y
|
|
||||||
// //@formatter:on
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// const noTileProto = 0
|
|
||||||
//
|
|
||||||
// const grid: int[][] = []
|
|
||||||
// for (let x = 0; x < maxX; x++) {
|
|
||||||
// grid[x] = []
|
|
||||||
// for (let y = 0; y < maxY; y++) {
|
|
||||||
// grid[x][y] = noTileProto
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// data.tileDictionary.protos["no-tile"] = noTileProto
|
|
||||||
//
|
|
||||||
// let protosCount2: uint = 0
|
|
||||||
// for (const tile of tiles) {
|
|
||||||
// const x = tile.position.x - minX
|
|
||||||
// const y = tile.position.y - minY
|
|
||||||
//
|
|
||||||
// data.tileDictionary.protos[tile.name] ??= protosCount2++
|
|
||||||
// grid[x][y] = data.tileDictionary.protos[tile.name]
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// const grid2: string[] = grid.map(row => table.concat(row))
|
|
||||||
|
|
||||||
|
|
||||||
let protosCount: uint = 0
|
let protosCount: uint = 0
|
||||||
for (const tile of tiles) {
|
for (const tile of tiles) {
|
||||||
data.tileDictionary.protos[tile.name] ??= protosCount++
|
if (data.tileDictionary.protos[tile.name] == undefined) {
|
||||||
|
data.tileDictionary.protos[tile.name] = protosCount++
|
||||||
|
}
|
||||||
const protoKey = data.tileDictionary.protos[tile.name]
|
const protoKey = data.tileDictionary.protos[tile.name]
|
||||||
|
|
||||||
const xString = `${tile.position.x}`
|
const xString = `${tile.position.x}`
|
||||||
const yString = `${tile.position.y}`
|
const yString = `${tile.position.y}`
|
||||||
|
|
||||||
data.tileDictionary.tilesXY[xString] ??= {}
|
if (data.tileDictionary.tilesXY[xString] == undefined) {
|
||||||
|
data.tileDictionary.tilesXY[xString] = {}
|
||||||
|
}
|
||||||
data.tileDictionary.tilesXY[xString][yString] = protoKey
|
data.tileDictionary.tilesXY[xString][yString] = protoKey
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -222,15 +191,16 @@ function convertOldPosition(
|
||||||
|
|
||||||
|
|
||||||
function handleBuiltTileEvent(event: OnPlayerBuiltTileEvent | OnRobotBuiltTileEvent) {
|
function handleBuiltTileEvent(event: OnPlayerBuiltTileEvent | OnRobotBuiltTileEvent) {
|
||||||
|
const eventName = Converters.eventNameString(event.name)
|
||||||
|
|
||||||
const surface = getSurface(event.surface_index)
|
const surface = getSurface(event.surface_index)
|
||||||
if (surface == undefined) {
|
if (surface == undefined) {
|
||||||
|
log(`[handleBuiltTileEvent] undefined surface ${eventName}`)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const tiles: TileRead[] = convertOldPosition(event.tiles, event.tile)
|
const tiles: TileRead[] = convertOldPosition(event.tiles, event.tile)
|
||||||
const groupedTiles = groupTiles(tiles)
|
const groupedTiles = groupTiles(tiles)
|
||||||
const eventName = Converters.eventNameString(event.name)
|
|
||||||
|
|
||||||
for (const [chunkPos, tiles] of groupedTiles) {
|
for (const [chunkPos, tiles] of groupedTiles) {
|
||||||
mapTilesUpdateDebounce(
|
mapTilesUpdateDebounce(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue