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

View file

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