cleaning up comments and old code
This commit is contained in:
parent
d28088be2d
commit
7486961fc2
5 changed files with 3 additions and 80 deletions
|
|
@ -40,12 +40,3 @@ data class Colour(
|
|||
fun isPercentage(): Boolean = !isDecimal()
|
||||
|
||||
}
|
||||
|
||||
//@Serializable
|
||||
//@SerialName("FactorioTiles")
|
||||
//data class FactorioTiles(
|
||||
// val tiles: List<FactorioTile>,
|
||||
//) : FactorioObjectData() {
|
||||
// @Transient
|
||||
// override val objectName: String = "FactorioTiles"
|
||||
//}
|
||||
|
|
|
|||
|
|
@ -8,15 +8,12 @@ import kotlinx.serialization.Transient
|
|||
|
||||
|
||||
@Serializable
|
||||
//@SerialName("CONFIG")
|
||||
data class FactorioConfigurationUpdate(
|
||||
override val modVersion: String,
|
||||
val factorioData: FactorioGameDataUpdate,
|
||||
val allMods: List<FactorioModInfo>,
|
||||
val prototypes: List<FactorioPrototype>,
|
||||
) : KafkatorioPacket() {
|
||||
// @Transient
|
||||
|
||||
@EncodeDefault
|
||||
override val packetType = PacketType.CONFIG
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,11 +2,9 @@ package dev.adamko.kafkatorio.events.schema
|
|||
|
||||
|
||||
import kotlinx.serialization.EncodeDefault
|
||||
import kotlinx.serialization.Required
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
//@SerialName("EVENT")
|
||||
data class FactorioEvent(
|
||||
override val modVersion: String,
|
||||
/** the initial Factorio event (`defines.events`) trigger */
|
||||
|
|
@ -15,42 +13,6 @@ data class FactorioEvent(
|
|||
val tick: UInt,
|
||||
val data: FactorioObjectData,
|
||||
) : KafkatorioPacket() {
|
||||
// @Transient
|
||||
@EncodeDefault
|
||||
override val packetType: PacketType = PacketType.EVENT
|
||||
|
||||
// companion object {
|
||||
// val kxsModule = SerializersModule {
|
||||
// contextual(FactorioEvent::class) { types -> serializer(types[0]) }
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
||||
//object FactorioEventSerializer : JsonContentPolymorphicSerializer<FactorioEvent<*>>(
|
||||
// FactorioEvent::class
|
||||
//) {
|
||||
//
|
||||
// override fun selectDeserializer(element: JsonElement): DeserializationStrategy<out FactorioEvent<*>> {
|
||||
//
|
||||
// val objectName: ObjectName? = element
|
||||
// .jsonObject[FactorioEvent<*>::data.name]
|
||||
// ?.jsonObject
|
||||
// ?.get(FactorioObjectData.discriminatorKey)
|
||||
// ?.jsonPrimitive
|
||||
// ?.contentOrNull
|
||||
// ?.let(ObjectName::valueOf)
|
||||
//
|
||||
// val sub = when (objectName) {
|
||||
// ObjectName.LuaPlayer -> PlayerData.serializer()
|
||||
// ObjectName.LuaEntity -> EntityData.serializer()
|
||||
// ObjectName.LuaSurface -> SurfaceData.serializer()
|
||||
// ObjectName.MapChunk -> MapChunk.serializer()
|
||||
// ObjectName.LuaTile -> MapTile.serializer()
|
||||
// ObjectName.ConsoleChatMessage -> ConsoleChatMessage.serializer()
|
||||
// null -> throw IllegalStateException("unknown type $objectName")
|
||||
// }
|
||||
// return FactorioEvent.serializer(sub)
|
||||
// }
|
||||
//}
|
||||
|
|
|
|||
|
|
@ -3,16 +3,13 @@ package dev.adamko.kafkatorio.events.schema
|
|||
import kotlinx.serialization.DeserializationStrategy
|
||||
import kotlinx.serialization.EncodeDefault
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.JsonClassDiscriminator
|
||||
import kotlinx.serialization.json.JsonContentPolymorphicSerializer
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
import kotlinx.serialization.json.contentOrNull
|
||||
import kotlinx.serialization.json.jsonObject
|
||||
import kotlinx.serialization.json.jsonPrimitive
|
||||
|
||||
//@Serializable
|
||||
@Serializable(with = FactorioObjectDataSerializer::class)
|
||||
//@JsonClassDiscriminator(FactorioObjectData.discriminatorKey)
|
||||
sealed class FactorioObjectData {
|
||||
|
||||
/** @see FactorioObjectData.discriminatorKey */
|
||||
|
|
@ -44,19 +41,12 @@ sealed class FactorioObjectData {
|
|||
LuaTile,
|
||||
ConsoleChatMessage,
|
||||
}
|
||||
|
||||
companion object {
|
||||
/** The [JsonClassDiscriminator] for [FactorioEvent] */
|
||||
const val discriminatorKey: String = "objectName"
|
||||
}
|
||||
}
|
||||
|
||||
object FactorioObjectDataSerializer : JsonContentPolymorphicSerializer<FactorioObjectData>(
|
||||
FactorioObjectData::class
|
||||
) {
|
||||
private val key =
|
||||
FactorioObjectData::objectName.name
|
||||
// "objectName"
|
||||
private val key = FactorioObjectData::objectName.name
|
||||
|
||||
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<out FactorioObjectData> {
|
||||
|
||||
|
|
@ -83,7 +73,6 @@ object FactorioObjectDataSerializer : JsonContentPolymorphicSerializer<FactorioO
|
|||
|
||||
|
||||
@Serializable
|
||||
//@SerialName("LuaPlayer")
|
||||
data class PlayerData(
|
||||
@Serializable(with = ListAsObjectSerializer::class)
|
||||
val associatedCharactersUnitNumbers: List<UInt>,
|
||||
|
|
@ -99,7 +88,6 @@ data class PlayerData(
|
|||
}
|
||||
|
||||
@Serializable
|
||||
//@SerialName("LuaEntity")
|
||||
data class EntityData(
|
||||
val active: Boolean,
|
||||
val health: Double?,
|
||||
|
|
@ -116,7 +104,6 @@ data class EntityData(
|
|||
}
|
||||
|
||||
@Serializable
|
||||
//@SerialName("LuaSurface")
|
||||
data class SurfaceData(
|
||||
val daytime: Double,
|
||||
val index: UInt,
|
||||
|
|
@ -128,7 +115,6 @@ data class SurfaceData(
|
|||
|
||||
/** Quasi-object. This isn't a Factorio Lua type, but a helpful collection of [MapTile]s */
|
||||
@Serializable
|
||||
//@SerialName("MapChunk")
|
||||
data class MapChunk(
|
||||
val tiles: List<MapTile>,
|
||||
) : FactorioObjectData() {
|
||||
|
|
@ -137,7 +123,6 @@ data class MapChunk(
|
|||
}
|
||||
|
||||
@Serializable
|
||||
//@SerialName("LuaTile")
|
||||
data class MapTile(
|
||||
val prototypeName: String,
|
||||
val position: PositionData,
|
||||
|
|
@ -148,7 +133,6 @@ data class MapTile(
|
|||
}
|
||||
|
||||
@Serializable
|
||||
//@SerialName("ConsoleChatMessage")
|
||||
data class ConsoleChatMessage(
|
||||
val authorPlayerIndex: UInt?,
|
||||
val content: String,
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package dev.adamko.kafkatorio.events.schema;
|
|||
|
||||
import kotlinx.serialization.DeserializationStrategy
|
||||
import kotlinx.serialization.EncodeDefault
|
||||
import kotlinx.serialization.Required
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.JsonContentPolymorphicSerializer
|
||||
import kotlinx.serialization.json.JsonElement
|
||||
|
|
@ -10,9 +9,8 @@ import kotlinx.serialization.json.contentOrNull
|
|||
import kotlinx.serialization.json.jsonObject
|
||||
import kotlinx.serialization.json.jsonPrimitive
|
||||
|
||||
//@Serializable
|
||||
|
||||
@Serializable(with = KafkatorioPacketSerializer::class)
|
||||
//@JsonClassDiscriminator("packetType")
|
||||
sealed class KafkatorioPacket {
|
||||
/** Schema versioning */
|
||||
abstract val modVersion: String
|
||||
|
|
@ -23,21 +21,12 @@ sealed class KafkatorioPacket {
|
|||
EVENT,
|
||||
CONFIG,
|
||||
}
|
||||
|
||||
companion object {
|
||||
// val kxsModule = SerializersModule {
|
||||
// polym
|
||||
// }
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
object KafkatorioPacketSerializer : JsonContentPolymorphicSerializer<KafkatorioPacket>(
|
||||
KafkatorioPacket::class
|
||||
) {
|
||||
private val key =
|
||||
KafkatorioPacket::packetType.name
|
||||
// "packetType"
|
||||
private val key = KafkatorioPacket::packetType.name
|
||||
|
||||
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<out KafkatorioPacket> {
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue