tidying up

This commit is contained in:
Adam 2021-12-28 17:05:52 +01:00
parent 7813756c69
commit 08ab1c582c
24 changed files with 105 additions and 324 deletions

View file

@ -138,7 +138,7 @@ distributions {
filter<ReplaceTokens>("tokens" to projectTokens)
includeEmptyDirs = false
exclude {
// exclude empty files
// exclude empty files
it.file.run {
isFile && useLines { lines -> lines.all { line -> line.isBlank() } }
}
@ -148,36 +148,6 @@ distributions {
}
}
//val packageMod by tasks.registering(Zip::class) {
// description = "Package mod files into ZIP"
// group = project.name
//
// dependsOn(typescriptToLua)
//
// inputs.properties(tokens)
//
// from(layout.projectDirectory.dir("src/main/resources/mod-data")) {
// include("**/**")
// filter<ReplaceTokens>("tokens" to tokens)
// }
// from(licenseFile)
//
// into(rootProject.name)
//
// // Factorio required format is:
// // - filename: `mod-name_version.zip`
// // - zip contains one directory, `mod-name`
// archiveFileName.set("${rootProject.name}_${project.version}.zip")
// destinationDirectory.set(layout.buildDirectory.dir("dist"))
//
// doLast {
// val outDir = destinationDirectory.asFile.get().toRelativeString(layout.projectDirectory.asFile)
// val outZip = "${archiveFileName.orNull}"
// logger.lifecycle("Packaged mod into $outDir/$outZip")
// }
//}
val downloadFactorioApiDocs by tasks.registering {
group = project.name
@ -244,3 +214,5 @@ tasks.assemble { dependsOn(installEventsTsSchema, tasks.updatePackageJson) }
// }
// }
// }
tasks.npmInstall

View file

@ -10,7 +10,7 @@ for (const [k, v] of pairs(defines.events)) {
function handlePlayerUpdate(tick: uint, playerIndex: uint, eventType: string) {
let player: LuaPlayer = game.players[playerIndex]
let table = Serdes.Player.playerToTable(player)
let table = Serdes.playerToTable(player)
emitEvent(table, tick, eventType)
handleCharactersEvent(tick, playerIndex, eventType)
@ -31,12 +31,12 @@ function handleCharactersEvent(tick: uint, playerIndex: uint, eventType: string)
}
function handleEntityUpdate(tick: uint, entity: LuaEntity, eventType: string) {
let table = Serdes.Entity.entityToTable(entity)
let table = Serdes.entityToTable(entity)
emitEvent(table, tick, eventType)
}
function surfaceEvent(tick: uint, surface: LuaSurface, eventType: string) {
let table = Serdes.Surface.surfaceToTable(surface)
let table = Serdes.surfaceToTable(surface)
emitEvent(table, tick, eventType)
}

View file

@ -1,6 +1,6 @@
{
"name": "kafkatorio-events-mod",
"version": "0.1.5",
"version": "0.1.6",
"private": true,
"scripts": {
"build": "tstl",
@ -9,7 +9,8 @@
"engines": {
"node": ">=10.13.0"
},
"devDependencies": {},
"devDependencies": {
},
"dependencies": {
"lua-types": "^2.11.0",
"@types/node": "^12.0.8",
@ -18,7 +19,10 @@
"typescript": "4.5.4"
},
"license": "UNLICENSED",
"peerDependencies": {},
"optionalDependencies": {},
"bundledDependencies": []
"peerDependencies": {
},
"optionalDependencies": {
},
"bundledDependencies": [
]
}

View file

@ -1,79 +1,65 @@
export namespace Serdes {
export namespace Player {
export function playerToTable(player: LuaPlayer): PlayerData {
let charIds = Entity.entitiesToUnitNumbers(player.get_associated_characters())
return {
object_name: player.object_name,
export function playerToTable(player: LuaPlayer): PlayerData {
let charIds = 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,
position: DataClasses.positionTableToTable(player.position),
}
name: player.name,
character_unit_number: player.character?.unit_number ?? null,
associated_characters_unit_numbers: charIds,
position: positionTableToTable(player.position),
}
}
export namespace Entity {
export function entityToTable(entity: LuaEntity): EntityData {
export function entityToTable(entity: LuaEntity): EntityData {
let player: LuaPlayer | null = entity.is_player() ? entity.player!! : null
let player: LuaPlayer | null = entity.is_player() ? entity.player!! : null
return {
object_name: entity.object_name,
return {
object_name: entity.object_name,
// entity data
name: entity.name,
type: entity.type,
active: entity.active,
health: entity.health ?? null,
health_ratio: entity.get_health_ratio(),
surface_index: entity.surface.index,
unit_number: entity.unit_number ?? null,
position: positionTableToTable(entity.position),
// entity data
name: entity.name,
type: entity.type,
active: entity.active,
health: entity.health ?? null,
health_ratio: entity.get_health_ratio(),
surface_index: entity.surface.index,
unit_number: entity.unit_number ?? null,
position: DataClasses.positionTableToTable(entity.position),
// player data
player_index: player?.index ?? null
}
// player data
player_index: player?.index ?? null
}
export function entitiesToUnitNumbers(entities: LuaEntity[]): uint[] {
let result: (uint) [] = []
for (let entity of entities) {
if (entity.unit_number != null) {
result[result.length] = entity.unit_number
}
}
return result
}
}
export namespace Surface {
export function surfaceToTable(surface: LuaSurface): SurfaceData {
return {
object_name: surface.object_name,
name: surface.name,
index: surface.index,
daytime: surface.daytime,
export function entitiesToUnitNumbers(entities: LuaEntity[]): uint[] {
let result: (uint) [] = []
for (let entity of entities) {
if (entity.unit_number != null) {
result[result.length] = entity.unit_number
}
}
return result
}
export namespace DataClasses {
export function surfaceToTable(surface: LuaSurface): SurfaceData {
return {
object_name: surface.object_name,
export function positionTableToTable(positionTable: PositionTable): PositionData {
return {
x: positionTable.x,
y: positionTable.y,
}
name: surface.name,
index: surface.index,
daytime: surface.daytime,
}
}
export function positionTableToTable(positionTable: PositionTable): PositionData {
return {
x: positionTable.x,
y: positionTable.y,
}
}
}