add mod version to messages, util method to get event name from event obj

This commit is contained in:
Adam 2021-10-23 22:47:19 +02:00
parent 70429d66be
commit 6245d614aa
2 changed files with 26 additions and 13 deletions

View file

@ -11,16 +11,10 @@
import {Serdes} from "./serdes/serdes"
import {FactorioEvent, JsonTable} from "./model/model";
const FactorioEvent = ((tick: uint, objectName: string, eventType: string, data: JsonTable) => {
return {
tick: tick,
object_name: objectName,
event_type: eventType,
data: data,
} as FactorioEvent
}
)
const mapEventIdToName = new LuaTable<defines.events, keyof typeof defines.events>()
for (const [k, v] of pairs(defines.events)) {
mapEventIdToName.set(v, k)
}
// function createFactorioEvent(tick: uint, object_name: string, eventType: string, data:
// JsonTable): FactorioEvent { return { tick, object_name, eventType, data, } }
@ -105,7 +99,8 @@ script.on_event(
for (const [index,] of pairs(game.surfaces)) {
let surface = game.surfaces[index]
surfaceEvent(e.tick, surface, "on_tick")
surfaceEvent(e.tick, surface, mapEventIdToName.get(e.name))
// surfaceEvent(e.tick, surface, "on_tick")
}
// let filename: string = table.concat([entity.unit_number, eventType, tick], "_")

View file

@ -13,9 +13,27 @@ export interface JsonTable {
[key: string]: JsonTableValueType
}
const MOD_VERSION = script.active_mods["factorio_web_map"]
export interface FactorioEvent extends JsonTable {
tick: uint
object_name: string,
/** Schema versioning */
mod_version: string,
/** game time */
tick: uint,
/** the initial Factorio event ({defines.events}) trigger */
event_type: string,
/** Defines the structure of {FactorioEvent.data} */
object_name: string,
data: JsonTable,
}
export const FactorioEvent = ((tick: uint, objectName: string, eventType: string, data: JsonTable) => {
return {
mod_version: MOD_VERSION,
tick: tick,
object_name: objectName,
event_type: eventType,
data: data,
} as FactorioEvent
}
)