fixing 'when' statements, tidying up some code,

This commit is contained in:
Adam 2022-02-20 22:30:56 +01:00
parent d14d0cd991
commit 7481c8162a
6 changed files with 17 additions and 9 deletions

View file

@ -1,6 +1,5 @@
import {EventDataCache} from "./EventDataCache"; import {EventDataCache} from "./EventDataCache";
import {emitPacket} from "../emitKafkatorioPacket"; import {emitPacket} from "../emitKafkatorioPacket";
// import { global } from "../global";
/** Every 0.1 seconds */ /** Every 0.1 seconds */
script.on_nth_tick(6, (nthTick: NthTickEventData) => { script.on_nth_tick(6, (nthTick: NthTickEventData) => {

View file

@ -52,7 +52,7 @@ object KafkatorioPacketJsonSerializer : JsonContentPolymorphicSerializer<Kafkato
KafkatorioPacket.PacketType.EVENT -> FactorioEvent.serializer() KafkatorioPacket.PacketType.EVENT -> FactorioEvent.serializer()
KafkatorioPacket.PacketType.CONFIG -> FactorioConfigurationUpdate.serializer() KafkatorioPacket.PacketType.CONFIG -> FactorioConfigurationUpdate.serializer()
KafkatorioPacket.PacketType.PROTOTYPES -> FactorioPrototypes.serializer() KafkatorioPacket.PacketType.PROTOTYPES -> FactorioPrototypes.serializer()
KafkatorioPacket.PacketType.UPDATE -> FactorioEventUpdatePacket.serializer() KafkatorioPacket.PacketType.UPDATE -> FactorioEventUpdatePacket.serializer()
} }
} }
} }

View file

@ -18,6 +18,7 @@ fun main(args: Array<String>) {
addAll(FactorioPrototype::class.sealedSubclasses) addAll(FactorioPrototype::class.sealedSubclasses)
add(FactorioPrototypes::class) add(FactorioPrototypes::class)
add(FactorioConfigurationUpdate::class) add(FactorioConfigurationUpdate::class)
add(FactorioEventUpdatePacket::class)
addAll(FactorioEventUpdate::class.sealedSubclasses) addAll(FactorioEventUpdate::class.sealedSubclasses)
}, },
mappings = mapOf( mappings = mapOf(

View file

@ -33,17 +33,19 @@ object KafkatorioKafkaAdmin {
add(KafkatorioTopology.TOPIC_GROUPED_MAP_CHUNKS) add(KafkatorioTopology.TOPIC_GROUPED_MAP_CHUNKS)
add(KafkatorioTopology.TOPIC_SRC_SERVER_LOG) add(KafkatorioTopology.TOPIC_SRC_SERVER_LOG)
val base = topicNameBase(packetType)
when (packetType) { when (packetType) {
KafkatorioPacket.PacketType.EVENT -> KafkatorioPacket.PacketType.EVENT ->
FactorioObjectData.ObjectName.values.forEach { objectName -> FactorioObjectData.ObjectName.values.forEach { objectName ->
add("kafkatorio.${packetType.name}.${objectName.name}") add("$base.${objectName.name}")
} }
KafkatorioPacket.PacketType.CONFIG -> KafkatorioPacket.PacketType.CONFIG -> add("$base.FactorioConfigurationUpdate")
add("kafkatorio.${packetType.name}.FactorioConfigurationUpdate") KafkatorioPacket.PacketType.PROTOTYPES -> add("$base.all")
KafkatorioPacket.PacketType.PROTOTYPES -> KafkatorioPacket.PacketType.UPDATE -> add("$base.all")
add("kafkatorio.${packetType.name}.all")
} }
} }
}.minus(currentTopics.toSet()) }.minus(currentTopics.toSet())
@ -87,4 +89,7 @@ object KafkatorioKafkaAdmin {
.listings() .listings()
.get() .get()
} }
fun topicNameBase(packetType: KafkatorioPacket.PacketType): String =
"kafkatorio.${packetType.name}"
} }

View file

@ -6,6 +6,7 @@ import dev.adamko.kafkatorio.events.schema.FactorioEventUpdatePacket
import dev.adamko.kafkatorio.events.schema.FactorioPrototypes import dev.adamko.kafkatorio.events.schema.FactorioPrototypes
import dev.adamko.kafkatorio.events.schema.KafkatorioPacket import dev.adamko.kafkatorio.events.schema.KafkatorioPacket
import dev.adamko.kafkatorio.processor.KafkatorioTopology import dev.adamko.kafkatorio.processor.KafkatorioTopology
import dev.adamko.kafkatorio.processor.admin.KafkatorioKafkaAdmin
import dev.adamko.kafkatorio.processor.serdes.jsonMapper import dev.adamko.kafkatorio.processor.serdes.jsonMapper
import dev.adamko.kotka.extensions.consumedAs import dev.adamko.kotka.extensions.consumedAs
import dev.adamko.kotka.extensions.producedAs import dev.adamko.kotka.extensions.producedAs
@ -51,7 +52,7 @@ fun splitFactorioServerPacketStream(
) { _: FactorioServerId, value: KafkatorioPacket, _: RecordContext -> ) { _: FactorioServerId, value: KafkatorioPacket, _: RecordContext ->
// println("[$key] sending event:${value.eventType} to topic:${value.data.objectName()}") // println("[$key] sending event:${value.eventType} to topic:${value.data.objectName()}")
val base = "kafkatorio.${value.packetType.name}" val base = KafkatorioKafkaAdmin.topicNameBase(value.packetType)
val type: String = when (value) { val type: String = when (value) {
is FactorioEvent -> value.data.objectName.name is FactorioEvent -> value.data.objectName.name

View file

@ -4,10 +4,10 @@ import dev.adamko.kafkatorio.events.schema.ConsoleChatMessage
import dev.adamko.kafkatorio.events.schema.EntityData import dev.adamko.kafkatorio.events.schema.EntityData
import dev.adamko.kafkatorio.events.schema.FactorioConfigurationUpdate import dev.adamko.kafkatorio.events.schema.FactorioConfigurationUpdate
import dev.adamko.kafkatorio.events.schema.FactorioEvent import dev.adamko.kafkatorio.events.schema.FactorioEvent
import dev.adamko.kafkatorio.events.schema.FactorioEventUpdatePacket
import dev.adamko.kafkatorio.events.schema.FactorioPrototypes import dev.adamko.kafkatorio.events.schema.FactorioPrototypes
import dev.adamko.kafkatorio.events.schema.KafkatorioPacket import dev.adamko.kafkatorio.events.schema.KafkatorioPacket
import dev.adamko.kafkatorio.events.schema.MapChunk import dev.adamko.kafkatorio.events.schema.MapChunk
import dev.adamko.kafkatorio.events.schema.MapTile
import dev.adamko.kafkatorio.events.schema.MapTiles import dev.adamko.kafkatorio.events.schema.MapTiles
import dev.adamko.kafkatorio.events.schema.PlayerData import dev.adamko.kafkatorio.events.schema.PlayerData
import dev.adamko.kafkatorio.events.schema.SurfaceData import dev.adamko.kafkatorio.events.schema.SurfaceData
@ -52,8 +52,10 @@ class WebsocketService(
} }
} }
} }
is FactorioEventUpdatePacket,
is FactorioConfigurationUpdate, is FactorioConfigurationUpdate,
is FactorioPrototypes -> { is FactorioPrototypes -> {
// to be continued...
} }
} }