move from schema2 to schema

This commit is contained in:
Adam 2022-04-20 17:18:09 +02:00
parent 6bfcd30558
commit b0a6151c36
30 changed files with 256 additions and 318 deletions

View file

@ -1,37 +1,37 @@
// Generated by kxs-ts-gen - do not edit this file manually
export interface KafkatorioPacket2 {
export interface KafkatorioPacket {
modVersion: string;
tick: Tick;
data: KafkatorioPacketData2;
data: KafkatorioPacketData;
}
export type Tick = UInt;
export type KafkatorioPacketData2 =
| KafkatorioPacketData2.ConfigurationUpdate
| KafkatorioPacketData2.ConsoleChatUpdate
| KafkatorioPacketData2.ConsoleCommandUpdate
| KafkatorioPacketData2.EntityUpdate
| KafkatorioPacketData2.MapChunkUpdate
| KafkatorioPacketData2.PlayerUpdate
| KafkatorioPacketData2.PrototypesUpdate
| KafkatorioPacketData2.SurfaceUpdate;
export type KafkatorioPacketData =
| KafkatorioPacketData.ConfigurationUpdate
| KafkatorioPacketData.ConsoleChatUpdate
| KafkatorioPacketData.ConsoleCommandUpdate
| KafkatorioPacketData.EntityUpdate
| KafkatorioPacketData.MapChunkUpdate
| KafkatorioPacketData.PlayerUpdate
| KafkatorioPacketData.PrototypesUpdate
| KafkatorioPacketData.SurfaceUpdate;
export namespace KafkatorioPacketData2 {
export namespace KafkatorioPacketData {
export enum Type {
ConfigurationUpdate = "dev.adamko.kafkatorio.schema2.ConfigurationUpdate",
ConsoleChatUpdate = "dev.adamko.kafkatorio.schema2.ConsoleChatUpdate",
ConsoleCommandUpdate = "dev.adamko.kafkatorio.schema2.ConsoleCommandUpdate",
PrototypesUpdate = "dev.adamko.kafkatorio.schema2.PrototypesUpdate",
SurfaceUpdate = "dev.adamko.kafkatorio.schema2.SurfaceUpdate",
EntityUpdate = "dev.adamko.kafkatorio.schema2.EntityUpdate",
MapChunkUpdate = "dev.adamko.kafkatorio.schema2.MapChunkUpdate",
PlayerUpdate = "dev.adamko.kafkatorio.schema2.PlayerUpdate",
ConfigurationUpdate = "dev.adamko.kafkatorio.schema.packets.ConfigurationUpdate",
ConsoleChatUpdate = "dev.adamko.kafkatorio.schema.packets.ConsoleChatUpdate",
ConsoleCommandUpdate = "dev.adamko.kafkatorio.schema.packets.ConsoleCommandUpdate",
PrototypesUpdate = "dev.adamko.kafkatorio.schema.packets.PrototypesUpdate",
SurfaceUpdate = "dev.adamko.kafkatorio.schema.packets.SurfaceUpdate",
EntityUpdate = "dev.adamko.kafkatorio.schema.packets.EntityUpdate",
MapChunkUpdate = "dev.adamko.kafkatorio.schema.packets.MapChunkUpdate",
PlayerUpdate = "dev.adamko.kafkatorio.schema.packets.PlayerUpdate",
}
export interface ConfigurationUpdate {
type: KafkatorioPacketData2.Type.ConfigurationUpdate;
type: KafkatorioPacketData.Type.ConfigurationUpdate;
factorioData: ConfigurationUpdateGameData;
allMods: ConfigurationUpdateModData[];
modStartupSettingsChange: boolean;
@ -39,32 +39,32 @@ export namespace KafkatorioPacketData2 {
}
export interface ConsoleChatUpdate {
type: KafkatorioPacketData2.Type.ConsoleChatUpdate;
type: KafkatorioPacketData.Type.ConsoleChatUpdate;
authorPlayerIndex: PlayerIndex | null;
content: string;
}
export interface ConsoleCommandUpdate {
type: KafkatorioPacketData2.Type.ConsoleCommandUpdate;
type: KafkatorioPacketData.Type.ConsoleCommandUpdate;
authorPlayerIndex: PlayerIndex | null;
command: string;
parameters: string;
}
export interface PrototypesUpdate {
type: KafkatorioPacketData2.Type.PrototypesUpdate;
prototypes: FactorioPrototype2[];
type: KafkatorioPacketData.Type.PrototypesUpdate;
prototypes: FactorioPrototype[];
}
export interface SurfaceUpdate {
type: KafkatorioPacketData2.Type.SurfaceUpdate;
type: KafkatorioPacketData.Type.SurfaceUpdate;
index: SurfaceIndex;
daytime: Double;
name: string;
}
export interface EntityUpdate {
type: KafkatorioPacketData2.Type.EntityUpdate;
type: KafkatorioPacketData.Type.EntityUpdate;
key: EntityUpdateKey;
eventCounts?: { [key: string]: UInt } | null;
chunkPosition?: MapChunkPosition | null;
@ -79,7 +79,7 @@ export namespace KafkatorioPacketData2 {
}
export interface MapChunkUpdate {
type: KafkatorioPacketData2.Type.MapChunkUpdate;
type: KafkatorioPacketData.Type.MapChunkUpdate;
key: MapChunkUpdateKey;
eventCounts?: { [key: string]: UInt } | null;
player?: PlayerIndex | null;
@ -90,7 +90,7 @@ export namespace KafkatorioPacketData2 {
}
export interface PlayerUpdate {
type: KafkatorioPacketData2.Type.PlayerUpdate;
type: KafkatorioPacketData.Type.PlayerUpdate;
key: PlayerUpdateKey;
eventCounts?: { [key: string]: UInt } | null;
characterUnitNumber?: UnitNumber | null;
@ -191,16 +191,16 @@ export interface ConfigurationUpdateModData {
previousVersion?: string | null;
}
export type FactorioPrototype2 =
| FactorioPrototype2.MapTile;
export type FactorioPrototype =
| FactorioPrototype.MapTile;
export namespace FactorioPrototype2 {
export namespace FactorioPrototype {
export enum Type {
MapTile = "dev.adamko.kafkatorio.schema.prototypes.FactorioPrototype2.MapTile",
MapTile = "dev.adamko.kafkatorio.schema.prototypes.FactorioPrototype.MapTile",
}
export interface MapTile {
type: FactorioPrototype2.Type.MapTile;
type: FactorioPrototype.Type.MapTile;
name: PrototypeName;
layer: UInt;
mapColour: Colour;

View file

@ -1,15 +1,15 @@
import {
KafkatorioPacket2,
KafkatorioPacketData2
KafkatorioPacket,
KafkatorioPacketData
} from "../generated/kafkatorio-schema/kafkatorio-schema";
import {KafkatorioKeyedPacketData} from "./types";
export class KafkatorioPacketEmitter {
emitInstantPacket<DATA extends KafkatorioPacketData2>(
emitInstantPacket<DATA extends KafkatorioPacketData>(
data: DATA,
) {
KafkatorioPacketEmitter.emitPacket<KafkatorioPacket2>({
KafkatorioPacketEmitter.emitPacket<KafkatorioPacket>({
data: data,
modVersion: global.MOD_VERSION,
tick: game.tick,
@ -19,7 +19,7 @@ export class KafkatorioPacketEmitter {
emitKeyedPacket<DATA extends KafkatorioKeyedPacketData>(
data: DATA,
) {
KafkatorioPacketEmitter.emitPacket<KafkatorioPacket2>({
KafkatorioPacketEmitter.emitPacket<KafkatorioPacket>({
data: data,
modVersion: global.MOD_VERSION,
tick: game.tick,
@ -27,7 +27,7 @@ export class KafkatorioPacketEmitter {
}
/** Emit a serialised KafkatorioPacket */
private static emitPacket<T extends KafkatorioPacket2>(packet: T) {
private static emitPacket<T extends KafkatorioPacket>(packet: T) {
let data = game.table_to_json(packet)
localised_print(`KafkatorioPacket: ${data}`)
// rcon.print(`KafkatorioPacket: ${data}`)

View file

@ -2,10 +2,10 @@ import PacketEmitter from "../PacketEmitter";
import {
ConfigurationUpdateGameData,
ConfigurationUpdateModData,
KafkatorioPacketData2
KafkatorioPacketData
} from "../../generated/kafkatorio-schema/kafkatorio-schema";
import Type = KafkatorioPacketData2.Type;
import ConfigurationUpdate = KafkatorioPacketData2.ConfigurationUpdate;
import Type = KafkatorioPacketData.Type;
import ConfigurationUpdate = KafkatorioPacketData.ConfigurationUpdate;
export function emitConfigurationUpdate(changeData: ConfigurationChangedData) {

View file

@ -1,11 +1,11 @@
import {Converters} from "../events/converters";
import PacketEmitter from "../PacketEmitter";
import {
FactorioPrototype2,
KafkatorioPacketData2
FactorioPrototype,
KafkatorioPacketData
} from "../../generated/kafkatorio-schema/kafkatorio-schema";
import Type = KafkatorioPacketData2.Type;
import PrototypesUpdate = KafkatorioPacketData2.PrototypesUpdate;
import Type = KafkatorioPacketData.Type;
import PrototypesUpdate = KafkatorioPacketData.PrototypesUpdate;
export function emitPrototypes() {
@ -18,20 +18,20 @@ export function emitPrototypes() {
PacketEmitter.emitInstantPacket(data)
}
function prototypes(): FactorioPrototype2[] {
let prototypes: FactorioPrototype2[] = []
function prototypes(): FactorioPrototype[] {
let prototypes: FactorioPrototype[] = []
prototypes.push(...getMapTilePrototypes())
return prototypes
}
function getMapTilePrototypes(): FactorioPrototype2.MapTile[] {
let tiles: FactorioPrototype2.MapTile[] = []
function getMapTilePrototypes(): FactorioPrototype.MapTile[] {
let tiles: FactorioPrototype.MapTile[] = []
for (let [, tile] of game.tile_prototypes) {
tiles.push(
<FactorioPrototype2.MapTile>{
type: FactorioPrototype2.Type.MapTile,
<FactorioPrototype.MapTile>{
type: FactorioPrototype.Type.MapTile,
name: tile.name,
order: tile.order,

View file

@ -1,6 +1,6 @@
import PacketEmitter from "../PacketEmitter";
import {KafkatorioPacketData2} from "../../generated/kafkatorio-schema/kafkatorio-schema";
import Type = KafkatorioPacketData2.Type;
import {KafkatorioPacketData} from "../../generated/kafkatorio-schema/kafkatorio-schema";
import Type = KafkatorioPacketData.Type;
// export function handlePlayerUpdate(tick: uint, eventType: string, playerIndex: uint) {
// let player: LuaPlayer = game.players[playerIndex]
@ -36,7 +36,7 @@ export function handleSurfaceUpdate(
eventType: string,
surface: LuaSurface,
) {
const update: KafkatorioPacketData2.SurfaceUpdate = {
const update: KafkatorioPacketData.SurfaceUpdate = {
type: Type.SurfaceUpdate,
name: surface.name,

View file

@ -1,11 +1,11 @@
import PacketEmitter from "../PacketEmitter";
import {KafkatorioPacketData2} from "../../generated/kafkatorio-schema/kafkatorio-schema";
import Type = KafkatorioPacketData2.Type;
import {KafkatorioPacketData} from "../../generated/kafkatorio-schema/kafkatorio-schema";
import Type = KafkatorioPacketData.Type;
script.on_event(
defines.events.on_console_chat,
(event: OnConsoleChatEvent) => {
const update: KafkatorioPacketData2.ConsoleChatUpdate = {
const update: KafkatorioPacketData.ConsoleChatUpdate = {
type: Type.ConsoleChatUpdate,
authorPlayerIndex: event.player_index ?? null,
@ -18,7 +18,7 @@ script.on_event(
script.on_event(
defines.events.on_console_command,
(event: OnConsoleCommandEvent) => {
const update: KafkatorioPacketData2.ConsoleCommandUpdate = {
const update: KafkatorioPacketData.ConsoleCommandUpdate = {
type: Type.ConsoleCommandUpdate,
authorPlayerIndex: event.player_index ?? null,

View file

@ -2,15 +2,15 @@ import {isEventType} from "./eventTypeCheck";
import {Converters} from "./converters";
import EventUpdatesManager, {EventUpdates} from "../cache/EventDataCache";
import {
KafkatorioPacketData2,
KafkatorioPacketData,
MapChunkPosition,
MapTileDictionary
} from "../../generated/kafkatorio-schema/kafkatorio-schema";
import CacheKey = EventUpdates.PacketKey;
import Type = KafkatorioPacketData2.Type;
import Type = KafkatorioPacketData.Type;
type MapChunkUpdater = (data: KafkatorioPacketData2.MapChunkUpdate) => void
type MapChunkUpdater = (data: KafkatorioPacketData.MapChunkUpdate) => void
const mapProtoNameToKey: { [key: string]: uint } = {}
@ -38,12 +38,12 @@ function mapTilesUpdateDebounce(
return
}
const key: KafkatorioPacketData2.MapChunkUpdate["key"] = {
const key: KafkatorioPacketData.MapChunkUpdate["key"] = {
surfaceIndex: surface.index,
chunkPosition: chunkPosition,
}
EventUpdatesManager.debounce<KafkatorioPacketData2.MapChunkUpdate>(
EventUpdatesManager.debounce<KafkatorioPacketData.MapChunkUpdate>(
key,
Type.MapChunkUpdate,
data => {
@ -267,12 +267,12 @@ script.on_event(
}
for (const position of e.positions) {
const key: CacheKey<KafkatorioPacketData2.MapChunkUpdate> = {
const key: CacheKey<KafkatorioPacketData.MapChunkUpdate> = {
surfaceIndex: surface.index,
chunkPosition: [position.x, position.y],
}
EventUpdatesManager.debounce<KafkatorioPacketData2.MapChunkUpdate>(
EventUpdatesManager.debounce<KafkatorioPacketData.MapChunkUpdate>(
key,
Type.MapChunkUpdate,
data => data.isDeleted = true,

View file

@ -1,10 +1,10 @@
import {Converters} from "./converters";
import EventUpdatesManager from "../cache/EventDataCache";
import {KafkatorioPacketData2} from "../../generated/kafkatorio-schema/kafkatorio-schema";
import Type = KafkatorioPacketData2.Type;
import {KafkatorioPacketData} from "../../generated/kafkatorio-schema/kafkatorio-schema";
import Type = KafkatorioPacketData.Type;
type PlayerUpdater = (player: LuaPlayer, data: KafkatorioPacketData2.PlayerUpdate) => void
type PlayerUpdater = (player: LuaPlayer, data: KafkatorioPacketData.PlayerUpdate) => void
function playerUpdateThrottle(
playerIndex: uint,
@ -12,7 +12,7 @@ function playerUpdateThrottle(
mutate: PlayerUpdater,
) {
EventUpdatesManager.throttle<KafkatorioPacketData2.PlayerUpdate>(
EventUpdatesManager.throttle<KafkatorioPacketData.PlayerUpdate>(
{index: playerIndex},
Type.PlayerUpdate,
data => {
@ -39,7 +39,7 @@ function playerUpdateThrottle(
// )
// }
function playerOnlineInfo(player: LuaPlayer, data: KafkatorioPacketData2.PlayerUpdate) {
function playerOnlineInfo(player: LuaPlayer, data: KafkatorioPacketData.PlayerUpdate) {
data.lastOnline = player.last_online
data.onlineTime = player.online_time
data.afkTime = player.afk_time

View file

@ -1,24 +1,24 @@
import {Data, DoubleSettingDefinition} from "typed-factorio/settings/types"
import {KafkatorioKeyedPacketData, KafkatorioKeyedPacketTypes} from "../types";
import {KafkatorioPacketData2} from "../../generated/kafkatorio-schema/kafkatorio-schema";
import {KafkatorioPacketData} from "../../generated/kafkatorio-schema/kafkatorio-schema";
export class KafkatorioSettingsConfig {
private static eventCacheExpirationDefaultSeconds: Record<KafkatorioKeyedPacketTypes, double> = {
"dev.adamko.kafkatorio.schema2.PlayerUpdate": 0.5,
"dev.adamko.kafkatorio.schema2.MapChunkUpdate": 30,
"dev.adamko.kafkatorio.schema2.EntityUpdate": 5,
"dev.adamko.kafkatorio.schema.packets.PlayerUpdate": 0.5,
"dev.adamko.kafkatorio.schema.packets.MapChunkUpdate": 30,
"dev.adamko.kafkatorio.schema.packets.EntityUpdate": 5,
}
private eventCacheExpirationTicks: Record<KafkatorioKeyedPacketTypes, double> = {
"dev.adamko.kafkatorio.schema2.PlayerUpdate":
KafkatorioSettingsConfig.eventCacheExpirationDefaultSeconds[KafkatorioPacketData2.Type.PlayerUpdate],
"dev.adamko.kafkatorio.schema2.MapChunkUpdate":
KafkatorioSettingsConfig.eventCacheExpirationDefaultSeconds[KafkatorioPacketData2.Type.MapChunkUpdate],
"dev.adamko.kafkatorio.schema2.EntityUpdate":
KafkatorioSettingsConfig.eventCacheExpirationDefaultSeconds[KafkatorioPacketData2.Type.EntityUpdate],
"dev.adamko.kafkatorio.schema.packets.PlayerUpdate":
KafkatorioSettingsConfig.eventCacheExpirationDefaultSeconds[KafkatorioPacketData.Type.PlayerUpdate],
"dev.adamko.kafkatorio.schema.packets.MapChunkUpdate":
KafkatorioSettingsConfig.eventCacheExpirationDefaultSeconds[KafkatorioPacketData.Type.MapChunkUpdate],
"dev.adamko.kafkatorio.schema.packets.EntityUpdate":
KafkatorioSettingsConfig.eventCacheExpirationDefaultSeconds[KafkatorioPacketData.Type.EntityUpdate],
}
public getEventCacheExpirationTicks(packet: KafkatorioKeyedPacketData): uint {
@ -26,9 +26,9 @@ export class KafkatorioSettingsConfig {
}
private static types: KafkatorioKeyedPacketTypes[] = [
KafkatorioPacketData2.Type.PlayerUpdate,
KafkatorioPacketData2.Type.MapChunkUpdate,
KafkatorioPacketData2.Type.EntityUpdate,
KafkatorioPacketData.Type.PlayerUpdate,
KafkatorioPacketData.Type.MapChunkUpdate,
KafkatorioPacketData.Type.EntityUpdate,
]
public loadSettings(): void {

View file

@ -1,4 +1,4 @@
import {KafkatorioPacketData2} from "../generated/kafkatorio-schema/kafkatorio-schema";
import {KafkatorioPacketData} from "../generated/kafkatorio-schema/kafkatorio-schema";
export type EventName = keyof typeof defines.events
@ -19,7 +19,7 @@ type NonNullableKeys<TYPE> = {
}
type KafkatorioKeyedPacketData = Extract<KafkatorioPacketData2, { key: object }>
type KafkatorioKeyedPacketData = Extract<KafkatorioPacketData, { key: object }>
type KafkatorioKeyedPacketTypes = KafkatorioKeyedPacketData["type"];

View file

@ -9,7 +9,8 @@
"engines": {
"node": "~14.19.1"
},
"devDependencies": {},
"devDependencies": {
},
"dependencies": {
"lua-types": "^2.11.0",
"typescript-to-lua": "1.4.3",
@ -18,7 +19,10 @@
},
"// @types/node": "^12.0.8",
"license": "UNLICENSED",
"peerDependencies": {},
"optionalDependencies": {},
"bundledDependencies": []
"peerDependencies": {
},
"optionalDependencies": {
},
"bundledDependencies": [
]
}