- serialization improvements (the tests work at least)
- fixing some version mis-alignments
This commit is contained in:
parent
babe0161ae
commit
53862ef1b5
19 changed files with 305 additions and 260 deletions
|
|
@ -309,7 +309,7 @@ tasks.register("downloadFactorioApiDocs") {
|
|||
)
|
||||
|
||||
val json = downloadedFile.readText()
|
||||
val prettyJson = groovy.json.JsonOutput.prettyPrint(json)
|
||||
val prettyJson = JsonOutput.prettyPrint(json)
|
||||
|
||||
apiFile.asFile.writeText(prettyJson)
|
||||
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ interface FactorioEvent<T extends FactorioObjectData> {
|
|||
}
|
||||
|
||||
interface PositionData {
|
||||
x: int;
|
||||
y: int;
|
||||
x: double;
|
||||
y: double;
|
||||
}
|
||||
|
||||
interface PlayerData extends FactorioObjectData {
|
||||
|
|
@ -27,8 +27,8 @@ interface PlayerData extends FactorioObjectData {
|
|||
|
||||
interface EntityData extends FactorioObjectData {
|
||||
active: boolean;
|
||||
health: float | null;
|
||||
health_ratio: float;
|
||||
health: double | null;
|
||||
health_ratio: double;
|
||||
name: string;
|
||||
object_name: string;
|
||||
player_index: uint | null;
|
||||
|
|
@ -39,7 +39,7 @@ interface EntityData extends FactorioObjectData {
|
|||
}
|
||||
|
||||
interface SurfaceData extends FactorioObjectData {
|
||||
daytime: float;
|
||||
daytime: double;
|
||||
index: uint;
|
||||
name: string;
|
||||
object_name: string;
|
||||
|
|
|
|||
|
|
@ -1,60 +0,0 @@
|
|||
// import {Serdes} from "../serdes/serdes";
|
||||
// import FactorioObjectData = Serdes.FactorioObjectData;
|
||||
//
|
||||
// export type JsonPrimitiveType = number | string | boolean | undefined | null | void
|
||||
//
|
||||
// export type JsonArray<T extends JsonPrimitiveType = void> = T[]
|
||||
//
|
||||
// export type JsonTableValueType =
|
||||
// JsonPrimitiveType
|
||||
// | JsonTable
|
||||
// | JsonArray<JsonPrimitiveType>
|
||||
// | undefined
|
||||
// | null
|
||||
//
|
||||
// export interface JsonTable {
|
||||
// [key: string]: JsonTableValueType
|
||||
// }
|
||||
|
||||
|
||||
// export interface FactorioEvent extends JsonTable {
|
||||
// /** Schema versioning */
|
||||
// mod_version: string,
|
||||
// /** game time */
|
||||
// tick: uint,
|
||||
// /** the initial Factorio event ({defines.events}) trigger */
|
||||
// event_type: string,
|
||||
// data: FactorioObjectData,
|
||||
// }
|
||||
//
|
||||
// export const FactorioEvent =
|
||||
// (<DataType extends FactorioObjectData>(
|
||||
// tick: uint,
|
||||
// eventType: string,
|
||||
// data: DataType
|
||||
// ) => {
|
||||
// return {
|
||||
// mod_version: MOD_VERSION,
|
||||
// tick: tick,
|
||||
// event_type: eventType,
|
||||
// data: data,
|
||||
// } as FactorioEvent
|
||||
// }
|
||||
// )
|
||||
|
||||
|
||||
// export type JsonArray<TValue extends JsonPrimitiveType> = TValue[]
|
||||
// export class JsonArray extends Array<JsonPrimitiveTypes> {
|
||||
// }
|
||||
|
||||
// export type JsonArray = Array<JsonPrimitiveTypes>
|
||||
// declare type JsonArrayConstructor = (new () => JsonArray)
|
||||
// declare const JsonArray: JsonArrayConstructor
|
||||
|
||||
// export class JsonTable extends LuaTable<string, JsonTableValueType> {
|
||||
// }
|
||||
// export type JsonTable = LuaTable<string, JsonTableValueType>
|
||||
// const JsonTable = () => new LuaTable<string, JsonTableValueType>()
|
||||
// export type JsonTableConstructor = (new () => JsonTable)
|
||||
// declare const JsonTable: JsonTableConstructor
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "factorio-web-map-mod",
|
||||
"version": "0.0.4",
|
||||
"version": "0.0.6",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
|
@ -83,9 +83,9 @@
|
|||
}
|
||||
},
|
||||
"typescript": {
|
||||
"version": "4.5.2",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.2.tgz",
|
||||
"integrity": "sha512-5BlMof9H1yGt0P8/WF+wPNw6GfctgGjXp5hkblpyT+8rkASSmkUKMXrxR0Xg8ThVCi/JnHQiKXeBaEwCeQwMFw=="
|
||||
"version": "4.4.4",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz",
|
||||
"integrity": "sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA=="
|
||||
},
|
||||
"typescript-to-lua": {
|
||||
"version": "1.1.1",
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "factorio-web-map-mod",
|
||||
"version": "0.0.5",
|
||||
"version": "0.0.7",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"build": "tstl",
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
"@types/node": "^12.0.8",
|
||||
"typescript-to-lua": "1.1.1",
|
||||
"typed-factorio": "0.12.0",
|
||||
"typescript": "4.5.2"
|
||||
"typescript": "4.4.4"
|
||||
},
|
||||
"//": {
|
||||
"typed-factorio": "0.10.0"
|
||||
|
|
|
|||
|
|
@ -1,18 +1,12 @@
|
|||
// import {JsonTable, JsonArray} from "../model/model";
|
||||
|
||||
|
||||
export namespace Serdes {
|
||||
|
||||
// export interface FactorioObjectData extends JsonTable {
|
||||
// object_name: string
|
||||
// }
|
||||
|
||||
export namespace Player {
|
||||
|
||||
export function playerToTable(player: LuaPlayer): PlayerData {
|
||||
let charIds = Entity.entitiesToUnitNumbers(player.get_associated_characters())
|
||||
return {
|
||||
object_name: player.object_name,
|
||||
|
||||
name: player.name,
|
||||
character_unit_number: player.character?.unit_number ?? null,
|
||||
associated_characters_unit_numbers: charIds,
|
||||
|
|
@ -30,6 +24,8 @@ export namespace Serdes {
|
|||
|
||||
return {
|
||||
object_name: entity.object_name,
|
||||
|
||||
// entity data
|
||||
name: entity.name,
|
||||
type: entity.type,
|
||||
active: entity.active,
|
||||
|
|
@ -39,7 +35,7 @@ export namespace Serdes {
|
|||
unit_number: entity.unit_number ?? null,
|
||||
position: DataClasses.positionTableToTable(entity.position),
|
||||
|
||||
// player data:
|
||||
// player data
|
||||
player_index: player?.index ?? null
|
||||
}
|
||||
}
|
||||
|
|
@ -61,6 +57,7 @@ export namespace Serdes {
|
|||
export function surfaceToTable(surface: LuaSurface): SurfaceData {
|
||||
return {
|
||||
object_name: surface.object_name,
|
||||
|
||||
name: surface.name,
|
||||
index: surface.index,
|
||||
daytime: surface.daytime,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue