fix bugs (mostly tstl limitations) and improve schema structure a bit

This commit is contained in:
Adam 2022-01-08 14:02:30 +01:00
parent f97b0a6562
commit 56fa2cbf00
8 changed files with 23 additions and 25 deletions

View file

@ -1,5 +1,5 @@
import {handleConfigurationUpdate} from "./main/config-update/handleConfigurationUpdate";
require("./main/events")
require("./main/events/registerHandlers")
script.on_configuration_changed(handleConfigurationUpdate)

View file

@ -42,16 +42,16 @@ interface SurfaceData extends FactorioObjectData {
objectName: string;
}
interface FactorioTile extends FactorioObjectData {
interface FactorioMapTile extends FactorioObjectData {
objectName: string;
position: PositionData;
prototypeName: string;
surfaceIndex: int;
}
interface FactorioTilesMap extends FactorioObjectData {
interface FactorioMapChunk extends FactorioObjectData {
objectName: string;
tiles: Map<PositionData, FactorioTile>;
tiles: FactorioMapTile[];
}
interface ConsoleChatMessage extends FactorioObjectData {

View file

@ -1,7 +1,7 @@
import {Converters} from "../events/converters";
export function convertPrototypes (): FactorioPrototype[] {
let prototypes = new Array<FactorioPrototype>()
export function convertPrototypes(): FactorioPrototype[] {
let prototypes: FactorioPrototype[] = []
prototypes.push(...getMapTilePrototypes())

View file

@ -32,8 +32,8 @@ function allMods(e: ConfigurationChangedData): FactorioModInfo[] {
return modNames.map((modName) => {
let currentVer = script.active_mods[modName] ?? e.mod_changes[modName].new_version
let previousVer = e.mod_changes[modName].old_version
let currentVer = script.active_mods[modName] ?? e.mod_changes[modName].new_version ?? null
let previousVer = e.mod_changes[modName]?.old_version ?? null
return <FactorioModInfo>{
modName: modName,

View file

@ -83,7 +83,7 @@ export namespace Converters {
}
}
export function convertTile(tile: LuaTile): FactorioTile {
export function convertTile(tile: LuaTile): FactorioMapTile {
return {
objectName: tile.object_name,

View file

@ -39,7 +39,6 @@ export function handleSurfaceUpdate(
emitEvent(table, tick, eventType)
}
export function handleConsoleChat(
tick: uint,
playerIndex: uint | undefined,
@ -64,21 +63,20 @@ export function handleChunkUpdate(
let x = (position as ChunkPositionTable).x * CHUNK_SIZE
let y = (position as ChunkPositionTable).y * CHUNK_SIZE
let tiles = surface?.find_tiles_filtered({
let tiles: LuaTile[] = surface?.find_tiles_filtered({
position: {x: x, y: y},
radius: CHUNK_SIZE,
collision_mask: ["ground-tile", "water-tile"]
}
) ?? []
let tilePositionMap = new Map<PositionData, FactorioTile>();
for (let tile of tiles) {
let position = Converters.convertMapPosition(tile.position)
tilePositionMap.set(position, Converters.convertTile(tile))
}
let mapChunk: FactorioTilesMap = {
let convertedTiles: FactorioMapTile[] = tiles.map((tile: LuaTile) => {
return Converters.convertTile(tile)
})
let mapChunk: FactorioMapChunk = {
objectName: "FactorioTilesMap",
tiles: tilePositionMap,
tiles: convertedTiles,
}
emitEvent(mapChunk, tick, eventType)