refactor typescript files (mostly moving&renaming for consistency)
This commit is contained in:
parent
5f1187f9a8
commit
1d0b2b8eaa
19 changed files with 91 additions and 126 deletions
|
|
@ -9,7 +9,8 @@
|
|||
"engines": {
|
||||
"node": "~14.19.1"
|
||||
},
|
||||
"devDependencies": {},
|
||||
"devDependencies": {
|
||||
},
|
||||
"dependencies": {
|
||||
"lua-types": "^2.11.0",
|
||||
"typescript-to-lua": "1.6.0",
|
||||
|
|
@ -17,7 +18,10 @@
|
|||
"typescript": "4.7.4"
|
||||
},
|
||||
"license": "UNLICENSED",
|
||||
"peerDependencies": {},
|
||||
"optionalDependencies": {},
|
||||
"bundledDependencies": []
|
||||
"peerDependencies": {
|
||||
},
|
||||
"optionalDependencies": {
|
||||
},
|
||||
"bundledDependencies": [
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,23 +1,11 @@
|
|||
import {emitConfigurationUpdate} from "./main/config-update/handleConfigurationUpdate";
|
||||
import {emitPrototypes} from "./main/config-update/prototypes";
|
||||
import {initGlobal} from "./main/global-init";
|
||||
import KafkatorioSettings from "./main/settings/KafkatorioSettings";
|
||||
import {emitPrototypes} from "./main/events/prototypeUpdates";
|
||||
|
||||
require("./main/events/registerHandlers")
|
||||
require("./main/events/onMapChunkEventListeners")
|
||||
require("./main/events/onPlayerEventListeners")
|
||||
require("./main/events/EntityEvents")
|
||||
require("./main/events/mapChunkUpdates")
|
||||
require("./main/events/playerUpdates")
|
||||
require("./main/events/entityUpdates")
|
||||
require("./main/commands/kafkatorioCommands")
|
||||
require("./main/cache/cacheChecker")
|
||||
|
||||
|
||||
script.on_configuration_changed((data: ConfigurationChangedData) => {
|
||||
// runs whenever the version of the base game, or a mod, changes
|
||||
initGlobal(true)
|
||||
// KafkatorioSettings.loadSettings()
|
||||
emitConfigurationUpdate(data)
|
||||
emitPrototypes()
|
||||
})
|
||||
|
||||
|
||||
script.on_init(() => {
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ export type KafkatorioPacketData =
|
|||
| KafkatorioPacketData.ConsoleChatUpdate
|
||||
| KafkatorioPacketData.ConsoleCommandUpdate
|
||||
| KafkatorioPacketData.EntityUpdate
|
||||
| KafkatorioPacketData.Error
|
||||
| KafkatorioPacketData.MapChunkUpdate
|
||||
| KafkatorioPacketData.PlayerUpdate
|
||||
| KafkatorioPacketData.PrototypesUpdate
|
||||
|
|
@ -28,6 +29,7 @@ export namespace KafkatorioPacketData {
|
|||
EntityUpdate = "kafkatorio.packet.keyed.EntityUpdate",
|
||||
MapChunkUpdate = "kafkatorio.packet.keyed.MapChunkUpdate",
|
||||
PlayerUpdate = "kafkatorio.packet.keyed.PlayerUpdate",
|
||||
Error = "kafkatorio.packet.KafkatorioPacketData.Error",
|
||||
}
|
||||
|
||||
export interface ConfigurationUpdate {
|
||||
|
|
@ -115,6 +117,12 @@ export namespace KafkatorioPacketData {
|
|||
disconnectReason?: string | null;
|
||||
isRemoved?: boolean | null;
|
||||
}
|
||||
|
||||
export interface Error {
|
||||
type: KafkatorioPacketData.Type.Error;
|
||||
message?: string | null;
|
||||
rawValue?: string | null;
|
||||
}
|
||||
}
|
||||
|
||||
export type UInt = uint;
|
||||
|
|
@ -1,9 +1,10 @@
|
|||
import {
|
||||
KafkatorioPacket,
|
||||
KafkatorioPacketData
|
||||
} from "../generated/kafkatorio-schema/kafkatorio-schema";
|
||||
} from "../generated/kafkatorio-schema";
|
||||
import {KafkatorioKeyedPacketData} from "./types";
|
||||
|
||||
|
||||
export class KafkatorioPacketEmitter {
|
||||
|
||||
emitInstantPacket<DATA extends KafkatorioPacketData>(
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
import EventCacheService from "./EventDataCache";
|
||||
|
||||
|
||||
/** Every 0.1 seconds */
|
||||
script.on_nth_tick(6, (nthTick: NthTickEventData) => {
|
||||
const emittedCount = EventCacheService.extractAndEmitExpiredPackets()
|
||||
if (emittedCount > 0) {
|
||||
log(`[on_nth_tick:${nthTick.tick}] emitted ${emittedCount} events`)
|
||||
}
|
||||
})
|
||||
|
|
@ -1,7 +1,6 @@
|
|||
import {emitPrototypes} from "../config-update/prototypes";
|
||||
import {initGlobal} from "../global-init";
|
||||
import floor = math.floor;
|
||||
import {Queue} from "../queue/queue";
|
||||
import {emitPrototypes} from "../events/prototypeUpdates";
|
||||
|
||||
|
||||
commands.add_command(
|
||||
|
|
@ -32,8 +31,8 @@ commands.add_command(
|
|||
let player = game.players[e.player_index]
|
||||
|
||||
const chunkPosition: ChunkPosition = {
|
||||
x: floor(player.position.x / 32),
|
||||
y: floor(player.position.y / 32),
|
||||
x: math.floor(player.position.x / 32),
|
||||
y: math.floor(player.position.y / 32),
|
||||
}
|
||||
|
||||
const chunkXMin = chunkPosition.x - radius
|
||||
|
|
@ -56,7 +55,7 @@ commands.add_command(
|
|||
position: {x: chunk.x, y: chunk.y},
|
||||
area: chunk.area,
|
||||
surface: surface,
|
||||
tick: e.tick
|
||||
tick: e.tick,
|
||||
}
|
||||
|
||||
Queue.enqueue(
|
||||
|
|
|
|||
|
|
@ -3,11 +3,23 @@ import {
|
|||
ConfigurationUpdateGameData,
|
||||
ConfigurationUpdateModData,
|
||||
KafkatorioPacketData
|
||||
} from "../../generated/kafkatorio-schema/kafkatorio-schema";
|
||||
} from "../../generated/kafkatorio-schema";
|
||||
import {initGlobal} from "../global-init";
|
||||
import {emitPrototypes} from "./prototypeUpdates";
|
||||
import Type = KafkatorioPacketData.Type;
|
||||
import ConfigurationUpdate = KafkatorioPacketData.ConfigurationUpdate;
|
||||
|
||||
export function emitConfigurationUpdate(changeData: ConfigurationChangedData) {
|
||||
|
||||
script.on_configuration_changed((data: ConfigurationChangedData) => {
|
||||
// runs whenever the version of the base game, or a mod, changes
|
||||
initGlobal(true)
|
||||
// KafkatorioSettings.loadSettings()
|
||||
emitConfigurationUpdate(data)
|
||||
emitPrototypes()
|
||||
})
|
||||
|
||||
|
||||
function emitConfigurationUpdate(changeData: ConfigurationChangedData) {
|
||||
|
||||
const configUpdateData: ConfigurationUpdate = {
|
||||
type: Type.ConfigurationUpdate,
|
||||
|
|
@ -20,6 +32,7 @@ export function emitConfigurationUpdate(changeData: ConfigurationChangedData) {
|
|||
PacketEmitter.emitInstantPacket(configUpdateData)
|
||||
}
|
||||
|
||||
|
||||
function factorioData(changeData: ConfigurationChangedData): ConfigurationUpdateGameData {
|
||||
return {
|
||||
oldVersion: changeData.old_version ?? null,
|
||||
|
|
@ -27,6 +40,7 @@ function factorioData(changeData: ConfigurationChangedData): ConfigurationUpdate
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
function allMods(e: ConfigurationChangedData): ConfigurationUpdateModData[] {
|
||||
|
||||
let namesOfChangedMods: string[] = Object.keys(e.mod_changes)
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
import PacketEmitter from "../PacketEmitter";
|
||||
import {KafkatorioPacketData} from "../../generated/kafkatorio-schema/kafkatorio-schema";
|
||||
import {KafkatorioPacketData} from "../../generated/kafkatorio-schema";
|
||||
import Type = KafkatorioPacketData.Type;
|
||||
|
||||
|
||||
script.on_event(
|
||||
defines.events.on_console_chat,
|
||||
(event: OnConsoleChatEvent) => {
|
||||
|
|
@ -15,6 +16,7 @@ script.on_event(
|
|||
}
|
||||
)
|
||||
|
||||
|
||||
script.on_event(
|
||||
defines.events.on_console_command,
|
||||
(event: OnConsoleCommandEvent) => {
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import {EventName} from "../types";
|
||||
import {Colour, MapChunkPosition} from "../../generated/kafkatorio-schema/kafkatorio-schema";
|
||||
import {Colour, MapChunkPosition} from "../../generated/kafkatorio-schema";
|
||||
|
||||
export namespace Converters {
|
||||
|
||||
|
|
@ -57,4 +57,13 @@ export namespace Converters {
|
|||
return [position.x, position.y]
|
||||
}
|
||||
|
||||
|
||||
export function convertCollisionMaskToNames(cm: CollisionMask): string[] {
|
||||
let masks: string[] = []
|
||||
for (let [name] of pairs(cm)) {
|
||||
masks.push(name)
|
||||
}
|
||||
return masks
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import EventDataCache from "../cache/EventDataCache";
|
|||
import {
|
||||
EntityUpdateKey,
|
||||
KafkatorioPacketData
|
||||
} from "../../generated/kafkatorio-schema/kafkatorio-schema";
|
||||
} from "../../generated/kafkatorio-schema";
|
||||
|
||||
|
||||
script.on_event(defines.events.on_built_entity, (e: OnBuiltEntityEvent) => {
|
||||
|
|
@ -4,7 +4,7 @@ import EventUpdatesManager, {EventUpdates} from "../cache/EventDataCache";
|
|||
import {
|
||||
KafkatorioPacketData,
|
||||
MapChunkPosition
|
||||
} from "../../generated/kafkatorio-schema/kafkatorio-schema";
|
||||
} from "../../generated/kafkatorio-schema";
|
||||
import CacheKey = EventUpdates.PacketKey;
|
||||
import Type = KafkatorioPacketData.Type;
|
||||
|
||||
|
|
@ -3,7 +3,7 @@ import EventUpdatesManager from "../cache/EventDataCache";
|
|||
import {
|
||||
KafkatorioPacketData,
|
||||
PlayerUpdateKey
|
||||
} from "../../generated/kafkatorio-schema/kafkatorio-schema";
|
||||
} from "../../generated/kafkatorio-schema";
|
||||
import Type = KafkatorioPacketData.Type;
|
||||
import packetEmitter from "../PacketEmitter";
|
||||
|
||||
|
|
@ -1,24 +1,21 @@
|
|||
import {Converters} from "../events/converters";
|
||||
import PacketEmitter from "../PacketEmitter";
|
||||
import {
|
||||
FactorioPrototype,
|
||||
KafkatorioPacketData
|
||||
} from "../../generated/kafkatorio-schema/kafkatorio-schema";
|
||||
import Type = KafkatorioPacketData.Type;
|
||||
import {FactorioPrototype, KafkatorioPacketData} from "../../generated/kafkatorio-schema";
|
||||
import {Converters} from "./converters";
|
||||
import PrototypesUpdate = KafkatorioPacketData.PrototypesUpdate;
|
||||
|
||||
|
||||
export function emitPrototypes() {
|
||||
|
||||
const data: PrototypesUpdate = {
|
||||
prototypes: prototypes(),
|
||||
type: Type.PrototypesUpdate,
|
||||
prototypes: prototypeUpdates(),
|
||||
type: KafkatorioPacketData.Type.PrototypesUpdate,
|
||||
}
|
||||
|
||||
PacketEmitter.emitInstantPacket(data)
|
||||
}
|
||||
|
||||
function prototypes(): FactorioPrototype[] {
|
||||
|
||||
function prototypeUpdates(): FactorioPrototype[] {
|
||||
let prototypes: FactorioPrototype[] = []
|
||||
|
||||
prototypes.push(...getMapTilePrototypes())
|
||||
|
|
@ -26,6 +23,7 @@ function prototypes(): FactorioPrototype[] {
|
|||
return prototypes
|
||||
}
|
||||
|
||||
|
||||
function getMapTilePrototypes(): FactorioPrototype.MapTile[] {
|
||||
let tiles: FactorioPrototype.MapTile[] = []
|
||||
for (let [, tile] of game.tile_prototypes) {
|
||||
|
|
@ -35,7 +33,7 @@ function getMapTilePrototypes(): FactorioPrototype.MapTile[] {
|
|||
name: tile.name,
|
||||
order: tile.order,
|
||||
layer: tile.layer,
|
||||
collisionMasks: convertCollisionMaskToNames(tile.collision_mask),
|
||||
collisionMasks: Converters.convertCollisionMaskToNames(tile.collision_mask),
|
||||
mapColour: Converters.mapColour(tile.map_color),
|
||||
canBeMined: tile.mineable_properties.minable,
|
||||
})
|
||||
|
|
@ -60,11 +58,3 @@ function getMapTilePrototypes(): FactorioPrototype.MapTile[] {
|
|||
// }
|
||||
// return tiles
|
||||
// }
|
||||
|
||||
function convertCollisionMaskToNames(cm: CollisionMask): string[] {
|
||||
let masks: string[] = []
|
||||
for (let [name] of pairs(cm)) {
|
||||
masks.push(name)
|
||||
}
|
||||
return masks
|
||||
}
|
||||
|
|
@ -1,34 +1,11 @@
|
|||
import {Queue} from "../queue/queue";
|
||||
import {isEventType} from "./eventTypeCheck";
|
||||
import {Converters} from "./converters";
|
||||
import KafkatorioSettings from "../settings/KafkatorioSettings";
|
||||
import {handleChunkGeneratedEvent} from "./onMapChunkEventListeners";
|
||||
import {handleSurfaceUpdate} from "./handlers";
|
||||
import {handleChunkGeneratedEvent} from "./mapChunkUpdates";
|
||||
import {handleSurfaceUpdate} from "./surfaceUpdates";
|
||||
import EventCacheService from "../cache/EventDataCache";
|
||||
|
||||
|
||||
// script.on_event(
|
||||
// defines.events.on_player_mined_entity,
|
||||
// (e: OnPlayerMinedEntityEvent) => {
|
||||
// let eventName = Converters.eventNameString(e.name)
|
||||
// // handlePlayerUpdate(e.tick, eventName, e.player_index)
|
||||
// handleEntityUpdate(e.tick, eventName, e.entity)
|
||||
// }
|
||||
// )
|
||||
|
||||
// script.on_event(
|
||||
// defines.events.on_player_joined_game,
|
||||
// (e: OnPlayerJoinedGameEvent) => {
|
||||
// handlePlayerUpdate(e.tick, mapEventIdToName.get(e.name), e.player_index)
|
||||
// }
|
||||
// )
|
||||
|
||||
// script.on_event(
|
||||
// defines.events.on_player_changed_position,
|
||||
// (e: OnPlayerChangedPositionEvent) => {
|
||||
// handlePlayerUpdate(e.tick, mapEventIdToName.get(e.name), e.player_index)
|
||||
// }
|
||||
// )
|
||||
|
||||
script.on_event(
|
||||
defines.events.on_tick,
|
||||
(event: OnTickEvent) => {
|
||||
|
|
@ -38,18 +15,26 @@ script.on_event(
|
|||
}
|
||||
}
|
||||
|
||||
if (event.tick % 6 == 0) {
|
||||
// Every 0.1 seconds
|
||||
const emittedCount = EventCacheService.extractAndEmitExpiredPackets()
|
||||
if (emittedCount > 0) {
|
||||
log(`[on_tick:${event.tick}] emitted ${emittedCount} events`)
|
||||
}
|
||||
}
|
||||
|
||||
if (event.tick % 7 == 0) {
|
||||
const events: EventData[] = Queue.dequeueValues(1)
|
||||
|
||||
if (events.length > 0) {
|
||||
log(`[${event.tick}] dequed ${events.length} events, current size: ${Queue.size()}`)
|
||||
log(`[on_tick:${event.tick}] dequeued ${events.length} events, current size: ${Queue.size()}`)
|
||||
|
||||
let i = 1
|
||||
for (const event of events) {
|
||||
if (isEventType(event, defines.events.on_chunk_generated)) {
|
||||
let eName = Converters.eventNameString(event.name)
|
||||
|
||||
log(`[${event.tick}] dequed event ${eName}, delay ${i}`)
|
||||
log(`[on_tick:${event.tick}] dequed event ${eName}, delay ${i}`)
|
||||
handleChunkGeneratedEvent(event, i)
|
||||
i += 1
|
||||
}
|
||||
|
|
@ -58,12 +43,3 @@ script.on_event(
|
|||
}
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
script.on_event(
|
||||
defines.events.on_runtime_mod_setting_changed,
|
||||
(e: OnRuntimeModSettingChangedEvent) => {
|
||||
print(`Settings changed ${e.setting_type}, ${e.player_index}, ${e.setting}, ${e.mod_name}`)
|
||||
// KafkatorioSettings.loadSettings()
|
||||
}
|
||||
)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
script.on_event(
|
||||
defines.events.on_runtime_mod_setting_changed,
|
||||
(e: OnRuntimeModSettingChangedEvent) => {
|
||||
print(`Settings changed ${e.setting_type}, ${e.player_index}, ${e.setting}, ${e.mod_name}`)
|
||||
// KafkatorioSettings.loadSettings()
|
||||
}
|
||||
)
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
import PacketEmitter from "../PacketEmitter";
|
||||
import {KafkatorioPacketData} from "../../generated/kafkatorio-schema/kafkatorio-schema";
|
||||
import {KafkatorioPacketData} from "../../generated/kafkatorio-schema";
|
||||
import Type = KafkatorioPacketData.Type;
|
||||
|
||||
|
||||
|
|
@ -11,35 +11,12 @@ export class KafkatorioSettingsConfig {
|
|||
}
|
||||
|
||||
|
||||
// private eventCacheExpirationTicks: Record<KafkatorioKeyedPacketTypes, double> = {
|
||||
// "kafkatorio.packet.keyed.PlayerUpdate":
|
||||
// KafkatorioSettingsConfig.eventCacheExpirationDefaultSeconds[KafkatorioPacketData.Type.PlayerUpdate],
|
||||
// "kafkatorio.packet.keyed.MapChunkUpdate":
|
||||
// KafkatorioSettingsConfig.eventCacheExpirationDefaultSeconds[KafkatorioPacketData.Type.MapChunkUpdate],
|
||||
// "kafkatorio.packet.keyed.EntityUpdate":
|
||||
// KafkatorioSettingsConfig.eventCacheExpirationDefaultSeconds[KafkatorioPacketData.Type.EntityUpdate],
|
||||
// }
|
||||
|
||||
public getEventCacheExpirationTicks(packet: KafkatorioKeyedPacketData): uint {
|
||||
const settingName = KafkatorioSettingsConfig.cacheDurationSettingName(packet.type)
|
||||
const seconds: double = settings.global[settingName].value as double
|
||||
return seconds * 60 // convert ticks to seconds
|
||||
}
|
||||
|
||||
// private static types: KafkatorioKeyedPacketTypes[] = [
|
||||
// KafkatorioPacketData.Type.PlayerUpdate,
|
||||
// KafkatorioPacketData.Type.MapChunkUpdate,
|
||||
// KafkatorioPacketData.Type.EntityUpdate,
|
||||
// ]
|
||||
|
||||
// public loadSettings(): void {
|
||||
// for (const type of KafkatorioSettingsConfig.types) {
|
||||
// const settingName = KafkatorioSettingsConfig.cacheDurationSettingName(type)
|
||||
// const seconds: double = settings.global[settingName].value as double
|
||||
// this.eventCacheExpirationTicks[type] = seconds * 60 // convert ticks to seconds
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
public initialiseSettings(data: Data): void {
|
||||
for (const [type,] of pairs(KafkatorioSettingsConfig.eventCacheExpirationDefaultSeconds)) {
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import {KafkatorioPacketData} from "../generated/kafkatorio-schema/kafkatorio-schema";
|
||||
import {KafkatorioPacketData} from "../generated/kafkatorio-schema";
|
||||
|
||||
export type EventName = keyof typeof defines.events
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue