diff --git a/modules/events-mod/src/main/typescript/control.ts b/modules/events-mod/src/main/typescript/control.ts index a195c76..43783ab 100644 --- a/modules/events-mod/src/main/typescript/control.ts +++ b/modules/events-mod/src/main/typescript/control.ts @@ -1,5 +1,5 @@ import {handleConfigurationUpdate} from "./main/config-update/handleConfigurationUpdate"; -require("./main/events") +require("./main/events/registerHandlers") script.on_configuration_changed(handleConfigurationUpdate) diff --git a/modules/events-mod/src/main/typescript/generated/kafkatorio-schema/object-data.d.ts b/modules/events-mod/src/main/typescript/generated/kafkatorio-schema/object-data.d.ts index 612b721..f9d50fe 100644 --- a/modules/events-mod/src/main/typescript/generated/kafkatorio-schema/object-data.d.ts +++ b/modules/events-mod/src/main/typescript/generated/kafkatorio-schema/object-data.d.ts @@ -42,16 +42,16 @@ interface SurfaceData extends FactorioObjectData { objectName: string; } -interface FactorioTile extends FactorioObjectData { +interface FactorioMapTile extends FactorioObjectData { objectName: string; position: PositionData; prototypeName: string; surfaceIndex: int; } -interface FactorioTilesMap extends FactorioObjectData { +interface FactorioMapChunk extends FactorioObjectData { objectName: string; - tiles: Map; + tiles: FactorioMapTile[]; } interface ConsoleChatMessage extends FactorioObjectData { diff --git a/modules/events-mod/src/main/typescript/main/config-update/convertPrototypes.ts b/modules/events-mod/src/main/typescript/main/config-update/convertPrototypes.ts index b1e2c3f..5234afb 100644 --- a/modules/events-mod/src/main/typescript/main/config-update/convertPrototypes.ts +++ b/modules/events-mod/src/main/typescript/main/config-update/convertPrototypes.ts @@ -1,7 +1,7 @@ import {Converters} from "../events/converters"; -export function convertPrototypes (): FactorioPrototype[] { - let prototypes = new Array() +export function convertPrototypes(): FactorioPrototype[] { + let prototypes: FactorioPrototype[] = [] prototypes.push(...getMapTilePrototypes()) diff --git a/modules/events-mod/src/main/typescript/main/config-update/handleConfigurationUpdate.ts b/modules/events-mod/src/main/typescript/main/config-update/handleConfigurationUpdate.ts index 8ceb25b..89d5657 100644 --- a/modules/events-mod/src/main/typescript/main/config-update/handleConfigurationUpdate.ts +++ b/modules/events-mod/src/main/typescript/main/config-update/handleConfigurationUpdate.ts @@ -32,8 +32,8 @@ function allMods(e: ConfigurationChangedData): FactorioModInfo[] { return modNames.map((modName) => { - let currentVer = script.active_mods[modName] ?? e.mod_changes[modName].new_version - let previousVer = e.mod_changes[modName].old_version + let currentVer = script.active_mods[modName] ?? e.mod_changes[modName].new_version ?? null + let previousVer = e.mod_changes[modName]?.old_version ?? null return { modName: modName, diff --git a/modules/events-mod/src/main/typescript/main/events/converters.ts b/modules/events-mod/src/main/typescript/main/events/converters.ts index b8eebdf..104df2a 100644 --- a/modules/events-mod/src/main/typescript/main/events/converters.ts +++ b/modules/events-mod/src/main/typescript/main/events/converters.ts @@ -83,7 +83,7 @@ export namespace Converters { } } - export function convertTile(tile: LuaTile): FactorioTile { + export function convertTile(tile: LuaTile): FactorioMapTile { return { objectName: tile.object_name, diff --git a/modules/events-mod/src/main/typescript/main/events/handlers.ts b/modules/events-mod/src/main/typescript/main/events/handlers.ts index 036080a..ba0bed4 100644 --- a/modules/events-mod/src/main/typescript/main/events/handlers.ts +++ b/modules/events-mod/src/main/typescript/main/events/handlers.ts @@ -39,7 +39,6 @@ export function handleSurfaceUpdate( emitEvent(table, tick, eventType) } - export function handleConsoleChat( tick: uint, playerIndex: uint | undefined, @@ -64,21 +63,20 @@ export function handleChunkUpdate( let x = (position as ChunkPositionTable).x * CHUNK_SIZE let y = (position as ChunkPositionTable).y * CHUNK_SIZE - let tiles = surface?.find_tiles_filtered({ + let tiles: LuaTile[] = surface?.find_tiles_filtered({ position: {x: x, y: y}, radius: CHUNK_SIZE, collision_mask: ["ground-tile", "water-tile"] } ) ?? [] - let tilePositionMap = new Map(); - for (let tile of tiles) { - let position = Converters.convertMapPosition(tile.position) - tilePositionMap.set(position, Converters.convertTile(tile)) - } - let mapChunk: FactorioTilesMap = { + let convertedTiles: FactorioMapTile[] = tiles.map((tile: LuaTile) => { + return Converters.convertTile(tile) + }) + + let mapChunk: FactorioMapChunk = { objectName: "FactorioTilesMap", - tiles: tilePositionMap, + tiles: convertedTiles, } emitEvent(mapChunk, tick, eventType) diff --git a/modules/events-schema/src/commonMain/kotlin/dev/adamko/kafkatorio/events/schema/factorioLuaObjects.kt b/modules/events-schema/src/commonMain/kotlin/dev/adamko/kafkatorio/events/schema/factorioLuaObjects.kt index 0ab2686..a8e1504 100644 --- a/modules/events-schema/src/commonMain/kotlin/dev/adamko/kafkatorio/events/schema/factorioLuaObjects.kt +++ b/modules/events-schema/src/commonMain/kotlin/dev/adamko/kafkatorio/events/schema/factorioLuaObjects.kt @@ -79,17 +79,17 @@ data class SurfaceData( } @Serializable -@SerialName("FactorioTilesMap") -data class FactorioTilesMap( - val tiles: Map, +@SerialName("FactorioMapChunk") +data class FactorioMapChunk( + val tiles: List, ) : FactorioObjectData() { @Transient - override val objectName: String = "FactorioTilesMap" + override val objectName: String = "FactorioMapChunk" } @Serializable @SerialName("LuaTile") -data class FactorioTile( +data class FactorioMapTile( val prototypeName: String, val position: PositionData, val surfaceIndex: Int, @@ -102,7 +102,7 @@ data class FactorioTile( data class ConsoleChatMessage( val authorPlayerIndex: UInt?, val content: String, -) : FactorioObjectData() { +) : FactorioObjectData() { @Transient override val objectName: String = "ConsoleChatMessage" } diff --git a/modules/infra-kafka-pipe/src/kafka-pipe.sh b/modules/infra-kafka-pipe/src/kafka-pipe.sh index b40a782..a8a8ea9 100644 --- a/modules/infra-kafka-pipe/src/kafka-pipe.sh +++ b/modules/infra-kafka-pipe/src/kafka-pipe.sh @@ -15,7 +15,7 @@ INSTANCE_ID=$(cat /proc/sys/kernel/random/uuid) while :; do docker logs --tail 0 -f "$FACTORIO_SERVER_CONTAINER_NAME" | - sed -n -e 's/^FactorioEvent: //p' | + sed -n -e 's/^KafkatorioPacket: //p' | kcat -P -T -b "$KAFKA_HOST" -t factorio-server-log -k "$INSTANCE_ID" echo "Error - retrying in 10 seconds"