fix bugs (mostly tstl limitations) and improve schema structure a bit
This commit is contained in:
parent
f97b0a6562
commit
56fa2cbf00
8 changed files with 23 additions and 25 deletions
|
|
@ -1,5 +1,5 @@
|
|||
import {handleConfigurationUpdate} from "./main/config-update/handleConfigurationUpdate";
|
||||
|
||||
require("./main/events")
|
||||
require("./main/events/registerHandlers")
|
||||
|
||||
script.on_configuration_changed(handleConfigurationUpdate)
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ export namespace Converters {
|
|||
}
|
||||
}
|
||||
|
||||
export function convertTile(tile: LuaTile): FactorioTile {
|
||||
export function convertTile(tile: LuaTile): FactorioMapTile {
|
||||
return {
|
||||
objectName: tile.object_name,
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue