giving up on protobuf arrggghhhhhhh

This commit is contained in:
Adam 2021-11-03 15:59:24 +01:00
parent 464d4c28fb
commit 16d382db11
6 changed files with 1041 additions and 33 deletions

View file

@ -45,31 +45,31 @@ val tsProtoFetch by tasks.creating(Sync::class) {
from(genSrcDir)
into(targetDir)
doLast {
fileTree(targetDir).forEach {
var text = it.readText()
text = text.replace(
Regex(
"""if \(_m0\.util\.Long !== Long\)\s*\{\s*_m0\.util\.Long = Long as any;\s*_m0\.configure\(\);\s*\}"""
),
""
)
text = text.replace(
Regex("""import Long from "long";"""),
""
)
text = text.replace(
Regex("""import _m0 from "protobufjs\/minimal";"""),
""
)
it.writeText(text)
}
}
// doLast {
//
// fileTree(targetDir).forEach {
// var text = it.readText()
//
// text = text.replace(
// Regex(
// """if \(_m0\.util\.Long !== Long\)\s*\{\s*_m0\.util\.Long = Long as any;\s*_m0\.configure\(\);\s*\}"""
// ),
// ""
// )
//
// text = text.replace(
// Regex("""import Long from "long";"""),
// ""
// )
//
// text = text.replace(
// Regex("""import _m0 from "protobufjs\/minimal";"""),
// ""
// )
//
// it.writeText(text)
// }
// }
}
@ -267,7 +267,7 @@ tasks.register("downloadFactorioApiDocs") {
val target = uri("https://lua-api.factorio.com/latest/runtime-api.json")
val apiFilename = File(target.path).name
val downloadedFile = file(temporaryDir.path + "/" + apiFilename)
val downloadedFile = file("$temporaryDir/$apiFilename")
val apiFile = modBuildDir.file(apiFilename)
outputs.file(apiFile)
@ -290,3 +290,33 @@ tasks.register("downloadFactorioApiDocs") {
logger.lifecycle("Downloaded Factorio API json: $apiFile")
}
}
//tasks.register("downloadLuaProtobuf") {
// group = projectId
//
// val luaProtobufVersion = "0.3.3"
//
// val target = uri("https://github.com/starwing/lua-protobuf/archive/refs/tags/$luaProtobufVersion.zip")
// val downloadedFile = file("$temporaryDir/luaProtobuf-$luaProtobufVersion.zip")
//
// val luaProto = modBuildDir.file(apiFilename)
// outputs.file(apiFile)
//
// doLast {
//
// ant.invokeMethod(
// "get", mapOf(
// "src" to target,
// "dest" to downloadedFile,
// "verbose" to true,
// )
// )
//
// val json = downloadedFile.readText()
// val prettyJson = groovy.json.JsonOutput.prettyPrint(json)
//
// apiFile.asFile.writeText(prettyJson)
//
// logger.lifecycle("Downloaded Factorio API json: $apiFile")
// }
//}

View file

@ -4,11 +4,85 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@protobufjs/aspromise": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
"integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78="
},
"@protobufjs/base64": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
"integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
},
"@protobufjs/codegen": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
"integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
},
"@protobufjs/eventemitter": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
"integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A="
},
"@protobufjs/fetch": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
"integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=",
"requires": {
"@protobufjs/aspromise": "^1.1.1",
"@protobufjs/inquire": "^1.1.0"
}
},
"@protobufjs/float": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
"integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E="
},
"@protobufjs/inquire": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
"integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik="
},
"@protobufjs/path": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
"integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0="
},
"@protobufjs/pool": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
"integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q="
},
"@protobufjs/utf8": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
"integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
},
"@types/long": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
"integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
},
"@types/node": {
"version": "12.20.33",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.33.tgz",
"integrity": "sha512-5XmYX2GECSa+CxMYaFsr2mrql71Q4EvHjKS+ox/SiwSdaASMoBIWE6UmZqFO+VX1jIcsYLStI4FFoB6V7FeIYw=="
},
"@types/object-hash": {
"version": "1.3.4",
"resolved": "https://registry.npmjs.org/@types/object-hash/-/object-hash-1.3.4.tgz",
"integrity": "sha512-xFdpkAkikBgqBdG9vIlsqffDV8GpvnPEzs0IUtr1v3BEB97ijsFQ4RXVbUZwjFThhB4MDSTUfvmxUD5PGx0wXA=="
},
"@types/prettier": {
"version": "1.19.1",
"resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-1.19.1.tgz",
"integrity": "sha512-5qOlnZscTn4xxM5MeGXAMOsIOIKIbh9e85zJWfBRVPlRMEVawzoPhINYbRGkBZCI8LxvBe7tJCdWiarA99OZfQ=="
},
"dataloader": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/dataloader/-/dataloader-1.4.0.tgz",
"integrity": "sha512-68s5jYdlvasItOJnCuI2Q9s4q98g0pCyL3HrcKJu8KNugUl8ahgmZYg38ysLTgQjjXX3H8CJLkAvWrclWfcalw=="
},
"enhanced-resolve": {
"version": "5.8.3",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz",
@ -44,16 +118,63 @@
"has": "^1.0.3"
}
},
"lodash": {
"version": "4.17.21",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
"long": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
},
"lua-types": {
"version": "2.11.0",
"resolved": "https://registry.npmjs.org/lua-types/-/lua-types-2.11.0.tgz",
"integrity": "sha512-J/8qHrOjkZuPBDhnuAg0DWoaJEImqXNzgEnUigCTVrSVCcchM5Y5zpcI3aWAZPhuZlb0QKC/f3nc7VGmZmBg7w=="
},
"object-hash": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz",
"integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="
},
"path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"prettier": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz",
"integrity": "sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA=="
},
"protobufjs": {
"version": "6.11.2",
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz",
"integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==",
"requires": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
"@protobufjs/codegen": "^2.0.4",
"@protobufjs/eventemitter": "^1.1.0",
"@protobufjs/fetch": "^1.1.0",
"@protobufjs/float": "^1.0.2",
"@protobufjs/inquire": "^1.1.0",
"@protobufjs/path": "^1.1.2",
"@protobufjs/pool": "^1.1.0",
"@protobufjs/utf8": "^1.1.0",
"@types/long": "^4.0.1",
"@types/node": ">=13.7.0",
"long": "^4.0.0"
},
"dependencies": {
"@types/node": {
"version": "16.11.6",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz",
"integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w=="
}
}
},
"resolve": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
@ -73,6 +194,38 @@
"resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
},
"ts-poet": {
"version": "4.6.1",
"resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-4.6.1.tgz",
"integrity": "sha512-DXJ+mBJIDp+jiaUgB4N5I/sczHHDU2FWacdbDNVAVS4Mh4hb7ckpvUWVW7m7/nAOcjR0r4Wt+7AoO7FeJKExfA==",
"requires": {
"@types/prettier": "^1.19.0",
"lodash": "^4.17.15",
"prettier": "^2.0.2"
}
},
"ts-proto": {
"version": "1.83.3",
"resolved": "https://registry.npmjs.org/ts-proto/-/ts-proto-1.83.3.tgz",
"integrity": "sha512-r6MKFjoc4Og2kB4cNJ/bddLebdIwhouG5plu0Rry1jJMEqp2GKA7AE4FrR/FnTCIGbNPYP4622lBqckZd7UHcQ==",
"requires": {
"@types/object-hash": "^1.3.0",
"dataloader": "^1.4.0",
"object-hash": "^1.3.1",
"protobufjs": "^6.8.8",
"ts-poet": "^4.5.0",
"ts-proto-descriptors": "^1.2.1"
}
},
"ts-proto-descriptors": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.3.1.tgz",
"integrity": "sha512-Cybb3fqceMwA6JzHdC32dIo8eVGVmXrM6TWhdk1XQVVHT/6OQqk0ioyX1dIdu3rCIBhRmWUhUE4HsyK+olmgMw==",
"requires": {
"long": "^4.0.0",
"protobufjs": "^6.8.8"
}
},
"typed-factorio": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/typed-factorio/-/typed-factorio-0.8.0.tgz",

View file

@ -14,7 +14,8 @@
"lua-types": "^2.11.0",
"@types/node": "^12.0.8",
"typescript-to-lua": "1.0.1",
"typed-factorio": "0.8.0"
"typed-factorio": "0.8.0",
"ts-proto": "1.83.3"
},
"peerDependencies": {},
"optionalDependencies": {},

View file

@ -1,6 +1,6 @@
/* eslint-disable */
import Long from "long";
import _m0 from "protobufjs/minimal";
export interface FactorioServerLogRecord {
modVersion: string;
@ -82,4 +82,826 @@ export interface Colour {
alpha: number;
}
const baseFactorioServerLogRecord: object = {
modVersion: "",
tick: 0,
eventType: "",
};
export const FactorioServerLogRecord = {
encode(
message: FactorioServerLogRecord,
writer: _m0.Writer = _m0.Writer.create()
): _m0.Writer {
if (message.modVersion !== "") {
writer.uint32(10).string(message.modVersion);
}
if (message.tick !== 0) {
writer.uint32(16).uint32(message.tick);
}
if (message.eventType !== "") {
writer.uint32(26).string(message.eventType);
}
if (message.data !== undefined) {
FactorioLuaObject.encode(message.data, writer.uint32(34).fork()).ldelim();
}
return writer;
},
decode(
input: _m0.Reader | Uint8Array,
length?: number
): FactorioServerLogRecord {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = {
...baseFactorioServerLogRecord,
} as FactorioServerLogRecord;
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.modVersion = reader.string();
break;
case 2:
message.tick = reader.uint32();
break;
case 3:
message.eventType = reader.string();
break;
case 4:
message.data = FactorioLuaObject.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(
object: DeepPartial<FactorioServerLogRecord>
): FactorioServerLogRecord {
const message = {
...baseFactorioServerLogRecord,
} as FactorioServerLogRecord;
if (object.modVersion !== undefined && object.modVersion !== null) {
message.modVersion = object.modVersion;
} else {
message.modVersion = "";
}
if (object.tick !== undefined && object.tick !== null) {
message.tick = object.tick;
} else {
message.tick = 0;
}
if (object.eventType !== undefined && object.eventType !== null) {
message.eventType = object.eventType;
} else {
message.eventType = "";
}
if (object.data !== undefined && object.data !== null) {
message.data = FactorioLuaObject.fromPartial(object.data);
} else {
message.data = undefined;
}
return message;
},
};
const baseFactorioLuaObject: object = { objectName: "" };
export const FactorioLuaObject = {
encode(
message: FactorioLuaObject,
writer: _m0.Writer = _m0.Writer.create()
): _m0.Writer {
if (message.objectName !== "") {
writer.uint32(10).string(message.objectName);
}
if (message.luaControl !== undefined) {
LuaControl.encode(message.luaControl, writer.uint32(18).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): FactorioLuaObject {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = { ...baseFactorioLuaObject } as FactorioLuaObject;
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.objectName = reader.string();
break;
case 2:
message.luaControl = LuaControl.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object: DeepPartial<FactorioLuaObject>): FactorioLuaObject {
const message = { ...baseFactorioLuaObject } as FactorioLuaObject;
if (object.objectName !== undefined && object.objectName !== null) {
message.objectName = object.objectName;
} else {
message.objectName = "";
}
if (object.luaControl !== undefined && object.luaControl !== null) {
message.luaControl = LuaControl.fromPartial(object.luaControl);
} else {
message.luaControl = undefined;
}
return message;
},
};
const baseLuaControl: object = {
isPlayer: false,
surfaceIndex: 0,
forceIndex: 0,
};
export const LuaControl = {
encode(
message: LuaControl,
writer: _m0.Writer = _m0.Writer.create()
): _m0.Writer {
if (message.isPlayer === true) {
writer.uint32(16).bool(message.isPlayer);
}
if (message.surfaceIndex !== 0) {
writer.uint32(24).uint32(message.surfaceIndex);
}
if (message.position !== undefined) {
Position.encode(message.position, writer.uint32(34).fork()).ldelim();
}
if (message.forceIndex !== 0) {
writer.uint32(40).uint32(message.forceIndex);
}
if (message.player !== undefined) {
LuaPlayer.encode(message.player, writer.uint32(82).fork()).ldelim();
}
if (message.entity !== undefined) {
LuaEntity.encode(message.entity, writer.uint32(90).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): LuaControl {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = { ...baseLuaControl } as LuaControl;
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 2:
message.isPlayer = reader.bool();
break;
case 3:
message.surfaceIndex = reader.uint32();
break;
case 4:
message.position = Position.decode(reader, reader.uint32());
break;
case 5:
message.forceIndex = reader.uint32();
break;
case 10:
message.player = LuaPlayer.decode(reader, reader.uint32());
break;
case 11:
message.entity = LuaEntity.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object: DeepPartial<LuaControl>): LuaControl {
const message = { ...baseLuaControl } as LuaControl;
if (object.isPlayer !== undefined && object.isPlayer !== null) {
message.isPlayer = object.isPlayer;
} else {
message.isPlayer = false;
}
if (object.surfaceIndex !== undefined && object.surfaceIndex !== null) {
message.surfaceIndex = object.surfaceIndex;
} else {
message.surfaceIndex = 0;
}
if (object.position !== undefined && object.position !== null) {
message.position = Position.fromPartial(object.position);
} else {
message.position = undefined;
}
if (object.forceIndex !== undefined && object.forceIndex !== null) {
message.forceIndex = object.forceIndex;
} else {
message.forceIndex = 0;
}
if (object.player !== undefined && object.player !== null) {
message.player = LuaPlayer.fromPartial(object.player);
} else {
message.player = undefined;
}
if (object.entity !== undefined && object.entity !== null) {
message.entity = LuaEntity.fromPartial(object.entity);
} else {
message.entity = undefined;
}
return message;
},
};
const baseLuaPlayer: object = {
index: 0,
name: "",
data: 0,
isConnected: false,
isAdmin: false,
afkTimeTicks: 0,
onlineTimeTicks: 0,
lastOnlineTicks: 0,
};
export const LuaPlayer = {
encode(
message: LuaPlayer,
writer: _m0.Writer = _m0.Writer.create()
): _m0.Writer {
if (message.index !== 0) {
writer.uint32(8).uint32(message.index);
}
if (message.name !== "") {
writer.uint32(18).string(message.name);
}
writer.uint32(34).fork();
for (const v of message.data) {
writer.int32(v);
}
writer.ldelim();
if (message.colour !== undefined) {
Colour.encode(message.colour, writer.uint32(66).fork()).ldelim();
}
if (message.isConnected === true) {
writer.uint32(80).bool(message.isConnected);
}
if (message.isAdmin === true) {
writer.uint32(88).bool(message.isAdmin);
}
if (message.afkTimeTicks !== 0) {
writer.uint32(800).uint32(message.afkTimeTicks);
}
if (message.onlineTimeTicks !== 0) {
writer.uint32(808).uint32(message.onlineTimeTicks);
}
if (message.lastOnlineTicks !== 0) {
writer.uint32(816).uint32(message.lastOnlineTicks);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): LuaPlayer {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = { ...baseLuaPlayer } as LuaPlayer;
message.data = [];
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.index = reader.uint32();
break;
case 2:
message.name = reader.string();
break;
case 4:
if ((tag & 7) === 2) {
const end2 = reader.uint32() + reader.pos;
while (reader.pos < end2) {
message.data.push(reader.int32());
}
} else {
message.data.push(reader.int32());
}
break;
case 8:
message.colour = Colour.decode(reader, reader.uint32());
break;
case 10:
message.isConnected = reader.bool();
break;
case 11:
message.isAdmin = reader.bool();
break;
case 100:
message.afkTimeTicks = reader.uint32();
break;
case 101:
message.onlineTimeTicks = reader.uint32();
break;
case 102:
message.lastOnlineTicks = reader.uint32();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object: DeepPartial<LuaPlayer>): LuaPlayer {
const message = { ...baseLuaPlayer } as LuaPlayer;
message.data = [];
if (object.index !== undefined && object.index !== null) {
message.index = object.index;
} else {
message.index = 0;
}
if (object.name !== undefined && object.name !== null) {
message.name = object.name;
} else {
message.name = "";
}
if (object.data !== undefined && object.data !== null) {
for (const e of object.data) {
message.data.push(e);
}
}
if (object.colour !== undefined && object.colour !== null) {
message.colour = Colour.fromPartial(object.colour);
} else {
message.colour = undefined;
}
if (object.isConnected !== undefined && object.isConnected !== null) {
message.isConnected = object.isConnected;
} else {
message.isConnected = false;
}
if (object.isAdmin !== undefined && object.isAdmin !== null) {
message.isAdmin = object.isAdmin;
} else {
message.isAdmin = false;
}
if (object.afkTimeTicks !== undefined && object.afkTimeTicks !== null) {
message.afkTimeTicks = object.afkTimeTicks;
} else {
message.afkTimeTicks = 0;
}
if (
object.onlineTimeTicks !== undefined &&
object.onlineTimeTicks !== null
) {
message.onlineTimeTicks = object.onlineTimeTicks;
} else {
message.onlineTimeTicks = 0;
}
if (
object.lastOnlineTicks !== undefined &&
object.lastOnlineTicks !== null
) {
message.lastOnlineTicks = object.lastOnlineTicks;
} else {
message.lastOnlineTicks = 0;
}
return message;
},
};
const baseLuaEntity: object = {
name: "",
type: "",
status: "",
isActive: false,
isMoving: false,
};
export const LuaEntity = {
encode(
message: LuaEntity,
writer: _m0.Writer = _m0.Writer.create()
): _m0.Writer {
if (message.unitNumber !== undefined) {
writer.uint32(8).uint32(message.unitNumber);
}
if (message.name !== "") {
writer.uint32(18).string(message.name);
}
if (message.type !== "") {
writer.uint32(26).string(message.type);
}
if (message.status !== "") {
writer.uint32(34).string(message.status);
}
if (message.isActive === true) {
writer.uint32(64).bool(message.isActive);
}
if (message.isMoving === true) {
writer.uint32(72).bool(message.isMoving);
}
if (message.playerIndex !== undefined) {
writer.uint32(400).uint32(message.playerIndex);
}
if (message.lastUserIndex !== undefined) {
writer.uint32(408).uint32(message.lastUserIndex);
}
if (message.colour !== undefined) {
Colour.encode(message.colour, writer.uint32(802).fork()).ldelim();
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): LuaEntity {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = { ...baseLuaEntity } as LuaEntity;
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.unitNumber = reader.uint32();
break;
case 2:
message.name = reader.string();
break;
case 3:
message.type = reader.string();
break;
case 4:
message.status = reader.string();
break;
case 8:
message.isActive = reader.bool();
break;
case 9:
message.isMoving = reader.bool();
break;
case 50:
message.playerIndex = reader.uint32();
break;
case 51:
message.lastUserIndex = reader.uint32();
break;
case 100:
message.colour = Colour.decode(reader, reader.uint32());
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object: DeepPartial<LuaEntity>): LuaEntity {
const message = { ...baseLuaEntity } as LuaEntity;
if (object.unitNumber !== undefined && object.unitNumber !== null) {
message.unitNumber = object.unitNumber;
} else {
message.unitNumber = undefined;
}
if (object.name !== undefined && object.name !== null) {
message.name = object.name;
} else {
message.name = "";
}
if (object.type !== undefined && object.type !== null) {
message.type = object.type;
} else {
message.type = "";
}
if (object.status !== undefined && object.status !== null) {
message.status = object.status;
} else {
message.status = "";
}
if (object.isActive !== undefined && object.isActive !== null) {
message.isActive = object.isActive;
} else {
message.isActive = false;
}
if (object.isMoving !== undefined && object.isMoving !== null) {
message.isMoving = object.isMoving;
} else {
message.isMoving = false;
}
if (object.playerIndex !== undefined && object.playerIndex !== null) {
message.playerIndex = object.playerIndex;
} else {
message.playerIndex = undefined;
}
if (object.lastUserIndex !== undefined && object.lastUserIndex !== null) {
message.lastUserIndex = object.lastUserIndex;
} else {
message.lastUserIndex = undefined;
}
if (object.colour !== undefined && object.colour !== null) {
message.colour = Colour.fromPartial(object.colour);
} else {
message.colour = undefined;
}
return message;
},
};
const baseLuaSurface: object = { index: 0, name: "", daytime: 0 };
export const LuaSurface = {
encode(
message: LuaSurface,
writer: _m0.Writer = _m0.Writer.create()
): _m0.Writer {
if (message.index !== 0) {
writer.uint32(8).uint32(message.index);
}
if (message.name !== "") {
writer.uint32(18).string(message.name);
}
if (message.daytime !== 0) {
writer.uint32(29).float(message.daytime);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): LuaSurface {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = { ...baseLuaSurface } as LuaSurface;
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.index = reader.uint32();
break;
case 2:
message.name = reader.string();
break;
case 3:
message.daytime = reader.float();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object: DeepPartial<LuaSurface>): LuaSurface {
const message = { ...baseLuaSurface } as LuaSurface;
if (object.index !== undefined && object.index !== null) {
message.index = object.index;
} else {
message.index = 0;
}
if (object.name !== undefined && object.name !== null) {
message.name = object.name;
} else {
message.name = "";
}
if (object.daytime !== undefined && object.daytime !== null) {
message.daytime = object.daytime;
} else {
message.daytime = 0;
}
return message;
},
};
const baseLuaForce: object = { index: 0, forceName: "", playerIds: 0 };
export const LuaForce = {
encode(
message: LuaForce,
writer: _m0.Writer = _m0.Writer.create()
): _m0.Writer {
if (message.index !== 0) {
writer.uint32(8).uint32(message.index);
}
if (message.forceName !== "") {
writer.uint32(18).string(message.forceName);
}
writer.uint32(802).fork();
for (const v of message.playerIds) {
writer.uint32(v);
}
writer.ldelim();
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): LuaForce {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = { ...baseLuaForce } as LuaForce;
message.playerIds = [];
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.index = reader.uint32();
break;
case 2:
message.forceName = reader.string();
break;
case 100:
if ((tag & 7) === 2) {
const end2 = reader.uint32() + reader.pos;
while (reader.pos < end2) {
message.playerIds.push(reader.uint32());
}
} else {
message.playerIds.push(reader.uint32());
}
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object: DeepPartial<LuaForce>): LuaForce {
const message = { ...baseLuaForce } as LuaForce;
message.playerIds = [];
if (object.index !== undefined && object.index !== null) {
message.index = object.index;
} else {
message.index = 0;
}
if (object.forceName !== undefined && object.forceName !== null) {
message.forceName = object.forceName;
} else {
message.forceName = "";
}
if (object.playerIds !== undefined && object.playerIds !== null) {
for (const e of object.playerIds) {
message.playerIds.push(e);
}
}
return message;
},
};
const basePosition: object = { x: 0, y: 0 };
export const Position = {
encode(
message: Position,
writer: _m0.Writer = _m0.Writer.create()
): _m0.Writer {
if (message.x !== 0) {
writer.uint32(8).int32(message.x);
}
if (message.y !== 0) {
writer.uint32(16).int32(message.y);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): Position {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = { ...basePosition } as Position;
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.x = reader.int32();
break;
case 2:
message.y = reader.int32();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object: DeepPartial<Position>): Position {
const message = { ...basePosition } as Position;
if (object.x !== undefined && object.x !== null) {
message.x = object.x;
} else {
message.x = 0;
}
if (object.y !== undefined && object.y !== null) {
message.y = object.y;
} else {
message.y = 0;
}
return message;
},
};
const baseColour: object = { red: 0, green: 0, blue: 0, alpha: 0 };
export const Colour = {
encode(
message: Colour,
writer: _m0.Writer = _m0.Writer.create()
): _m0.Writer {
if (message.red !== 0) {
writer.uint32(13).float(message.red);
}
if (message.green !== 0) {
writer.uint32(21).float(message.green);
}
if (message.blue !== 0) {
writer.uint32(29).float(message.blue);
}
if (message.alpha !== 0) {
writer.uint32(37).float(message.alpha);
}
return writer;
},
decode(input: _m0.Reader | Uint8Array, length?: number): Colour {
const reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = { ...baseColour } as Colour;
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1:
message.red = reader.float();
break;
case 2:
message.green = reader.float();
break;
case 3:
message.blue = reader.float();
break;
case 4:
message.alpha = reader.float();
break;
default:
reader.skipType(tag & 7);
break;
}
}
return message;
},
fromPartial(object: DeepPartial<Colour>): Colour {
const message = { ...baseColour } as Colour;
if (object.red !== undefined && object.red !== null) {
message.red = object.red;
} else {
message.red = 0;
}
if (object.green !== undefined && object.green !== null) {
message.green = object.green;
} else {
message.green = 0;
}
if (object.blue !== undefined && object.blue !== null) {
message.blue = object.blue;
} else {
message.blue = 0;
}
if (object.alpha !== undefined && object.alpha !== null) {
message.alpha = object.alpha;
} else {
message.alpha = 0;
}
return message;
},
};
type Builtin =
| Date
| Function
| Uint8Array
| string
| number
| boolean
| undefined;
type DeepPartial<T> = T extends Builtin
? T
: T extends Array<infer U>
? Array<DeepPartial<U>>
: T extends ReadonlyArray<infer U>
? ReadonlyArray<DeepPartial<U>>
: T extends {}
? { [K in keyof T]?: DeepPartial<T[K]> }
: Partial<T>;
if (_m0.util.Long !== Long) {
_m0.util.Long = Long as any;
_m0.configure();
}

View file

@ -10,7 +10,9 @@
"types": [
"typescript-to-lua/language-extensions",
"lua-types/5.2",
"typed-factorio/runtime"
"typed-factorio/runtime",
"protobufjs/minimal.d.ts",
"@types/long"
],
"explainFiles": true,
"forceConsistentCasingInFileNames": true,
@ -22,7 +24,8 @@
"strict": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"traceResolution": true
"traceResolution": true,
"esModuleInterop": true
},
"tstl": {
"luaTarget": "5.2",
@ -38,7 +41,6 @@
"node_modules"
],
"exactOptionalPropertyTypes": true,
"luaTarget": "5.2",
"skipLibCheck": true,
"skipDefaultLibCheck": true,
"types": [