only save png tiles 256px and up
This commit is contained in:
parent
1b3e3dc539
commit
4510ec4a6e
3 changed files with 11 additions and 13 deletions
|
|
@ -27,7 +27,6 @@ dependencies {
|
||||||
|
|
||||||
implementation(libs.kotlinx.serialization.core)
|
implementation(libs.kotlinx.serialization.core)
|
||||||
implementation(libs.kotlinx.serialization.json)
|
implementation(libs.kotlinx.serialization.json)
|
||||||
// implementation("org.jetbrains.kotlinx:kotlinx-serialization-protobuf")
|
|
||||||
|
|
||||||
implementation(libs.kotlinx.coroutines.core)
|
implementation(libs.kotlinx.coroutines.core)
|
||||||
|
|
||||||
|
|
@ -46,7 +45,6 @@ dependencies {
|
||||||
implementation(callLogging)
|
implementation(callLogging)
|
||||||
implementation(contentNegotiaion)
|
implementation(contentNegotiaion)
|
||||||
implementation(cio)
|
implementation(cio)
|
||||||
// implementation(netty)
|
|
||||||
implementation(autoHeadResponse)
|
implementation(autoHeadResponse)
|
||||||
implementation(partialContent)
|
implementation(partialContent)
|
||||||
implementation(resources)
|
implementation(resources)
|
||||||
|
|
@ -59,7 +57,6 @@ dependencies {
|
||||||
implementation(core)
|
implementation(core)
|
||||||
implementation(tls)
|
implementation(tls)
|
||||||
}
|
}
|
||||||
|
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,17 +16,11 @@ suspend fun eventsProcessor(
|
||||||
wsServer: WebmapWebsocketServer,
|
wsServer: WebmapWebsocketServer,
|
||||||
): Unit = coroutineScope {
|
): Unit = coroutineScope {
|
||||||
|
|
||||||
|
|
||||||
val admin = KafkatorioKafkaAdmin(appProps)
|
val admin = KafkatorioKafkaAdmin(appProps)
|
||||||
admin.createKafkatorioTopics()
|
admin.createKafkatorioTopics()
|
||||||
|
|
||||||
|
|
||||||
// val syslogServer = SyslogSocketServer(appProps)
|
|
||||||
// val wsServer = WebsocketServer()
|
|
||||||
// val tileServer = WebMapTileServer(appProps)
|
|
||||||
val topology = KafkatorioTopology(appProps, wsServer, syslogServer)
|
val topology = KafkatorioTopology(appProps, wsServer, syslogServer)
|
||||||
|
|
||||||
|
|
||||||
launch {
|
launch {
|
||||||
topology.start()
|
topology.start()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import com.sksamuel.scrimage.ImmutableImage
|
||||||
import com.sksamuel.scrimage.ScaleMethod
|
import com.sksamuel.scrimage.ScaleMethod
|
||||||
import com.sksamuel.scrimage.nio.PngWriter
|
import com.sksamuel.scrimage.nio.PngWriter
|
||||||
import dev.adamko.kafkatorio.library.kxsBinary
|
import dev.adamko.kafkatorio.library.kxsBinary
|
||||||
|
import dev.adamko.kafkatorio.schema.common.ChunkSize
|
||||||
import dev.adamko.kafkatorio.schema.common.ColourHex
|
import dev.adamko.kafkatorio.schema.common.ColourHex
|
||||||
import dev.adamko.kafkatorio.schema.common.FactorioServerId
|
import dev.adamko.kafkatorio.schema.common.FactorioServerId
|
||||||
import dev.adamko.kafkatorio.schema.common.ServerMapChunkId
|
import dev.adamko.kafkatorio.schema.common.ServerMapChunkId
|
||||||
|
|
@ -14,11 +15,15 @@ import dev.adamko.kafkatorio.server.processor.TOPIC_BROADCAST_TO_WEBSOCKET
|
||||||
import dev.adamko.kafkatorio.server.processor.TOPIC_MAP_CHUNK_COLOURED_STATE
|
import dev.adamko.kafkatorio.server.processor.TOPIC_MAP_CHUNK_COLOURED_STATE
|
||||||
import dev.adamko.kotka.extensions.consumedAs
|
import dev.adamko.kotka.extensions.consumedAs
|
||||||
import dev.adamko.kotka.extensions.producedAs
|
import dev.adamko.kotka.extensions.producedAs
|
||||||
|
import dev.adamko.kotka.extensions.stream
|
||||||
|
import dev.adamko.kotka.extensions.streams.filter
|
||||||
import dev.adamko.kotka.extensions.streams.map
|
import dev.adamko.kotka.extensions.streams.map
|
||||||
import dev.adamko.kotka.extensions.streams.mapValues
|
import dev.adamko.kotka.extensions.streams.mapValues
|
||||||
import dev.adamko.kotka.kxs.serde
|
import dev.adamko.kotka.kxs.serde
|
||||||
import java.awt.image.BufferedImage
|
import java.awt.image.BufferedImage
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
import kotlin.collections.component1
|
||||||
|
import kotlin.collections.component2
|
||||||
import kotlin.io.path.fileSize
|
import kotlin.io.path.fileSize
|
||||||
import kotlin.math.abs
|
import kotlin.math.abs
|
||||||
import org.apache.kafka.streams.StreamsBuilder
|
import org.apache.kafka.streams.StreamsBuilder
|
||||||
|
|
@ -41,13 +46,15 @@ fun saveMapTiles(
|
||||||
|
|
||||||
val subdividedMapChunkTilesDebounced: KStream<ServerMapChunkId, ServerMapChunkTiles<ColourHex>> =
|
val subdividedMapChunkTilesDebounced: KStream<ServerMapChunkId, ServerMapChunkTiles<ColourHex>> =
|
||||||
builder.stream(
|
builder.stream(
|
||||||
TOPIC_MAP_CHUNK_COLOURED_STATE,
|
|
||||||
consumedAs(
|
consumedAs(
|
||||||
"$pid.consume.grouped-map-chunks",
|
"$pid.consume.grouped-map-chunks",
|
||||||
kxsBinary.serde(),
|
kxsBinary.serde(ServerMapChunkId.serializer()),
|
||||||
kxsBinary.serde(),
|
kxsBinary.serde(ServerMapChunkTiles.serializer(ColourHex.serializer())),
|
||||||
),
|
),
|
||||||
)
|
TOPIC_MAP_CHUNK_COLOURED_STATE,
|
||||||
|
).filter("$pid.consume.grouped-map-chunks.filter-size") { _, y ->
|
||||||
|
y.chunkId.chunkSize.zoomLevel >= ChunkSize.CHUNK_256.zoomLevel
|
||||||
|
}
|
||||||
|
|
||||||
val savedChunkFilenames: KStream<ServerMapChunkId, TilePngFilename> =
|
val savedChunkFilenames: KStream<ServerMapChunkId, TilePngFilename> =
|
||||||
subdividedMapChunkTilesDebounced.saveChunkAsImage(serverDataDir)
|
subdividedMapChunkTilesDebounced.saveChunkAsImage(serverDataDir)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue