version bumps, schema tweaks, code tweaks,
This commit is contained in:
parent
b055397d25
commit
a9782a4d90
15 changed files with 954 additions and 59 deletions
|
|
@ -23,7 +23,7 @@ interface EntityData extends FactorioObjectData, FactorioLuaControl {
|
||||||
active: boolean;
|
active: boolean;
|
||||||
force: uint;
|
force: uint;
|
||||||
health: double | null;
|
health: double | null;
|
||||||
healthRatio: double;
|
healthRatio: double | null;
|
||||||
name: string;
|
name: string;
|
||||||
objectName: ObjectName;
|
objectName: ObjectName;
|
||||||
playerIndex: uint | null;
|
playerIndex: uint | null;
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,6 @@ interface FactorioPrototype {
|
||||||
prototypeObjectName: PrototypeObjectName;
|
prototypeObjectName: PrototypeObjectName;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface FactorioPrototypes extends KafkatorioPacket {
|
|
||||||
modVersion: string;
|
|
||||||
packetType: PacketType;
|
|
||||||
prototypes: FactorioPrototype[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface MapTilePrototype extends FactorioPrototype {
|
interface MapTilePrototype extends FactorioPrototype {
|
||||||
canBeMined: boolean;
|
canBeMined: boolean;
|
||||||
collisionMasks: string[];
|
collisionMasks: string[];
|
||||||
|
|
@ -21,3 +15,9 @@ interface MapTilePrototype extends FactorioPrototype {
|
||||||
order: string;
|
order: string;
|
||||||
prototypeObjectName: PrototypeObjectName;
|
prototypeObjectName: PrototypeObjectName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface FactorioPrototypes extends KafkatorioPacket {
|
||||||
|
modVersion: string;
|
||||||
|
packetType: PacketType;
|
||||||
|
prototypes: FactorioPrototype[];
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,6 @@ interface KafkatorioPacket {
|
||||||
packetType: PacketType;
|
packetType: PacketType;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface FactorioEvent extends KafkatorioPacket {
|
|
||||||
data: FactorioObjectData;
|
|
||||||
eventType: string;
|
|
||||||
modVersion: string;
|
|
||||||
packetType: PacketType;
|
|
||||||
tick: uint;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface MapEntityPosition {
|
interface MapEntityPosition {
|
||||||
x: double;
|
x: double;
|
||||||
y: double;
|
y: double;
|
||||||
|
|
@ -54,6 +46,14 @@ interface MapTile {
|
||||||
y: int;
|
y: int;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface FactorioEvent extends KafkatorioPacket {
|
||||||
|
data: FactorioObjectData;
|
||||||
|
eventType: string;
|
||||||
|
modVersion: string;
|
||||||
|
packetType: PacketType;
|
||||||
|
tick: uint;
|
||||||
|
}
|
||||||
|
|
||||||
interface EntityIdentifiers {
|
interface EntityIdentifiers {
|
||||||
name: string;
|
name: string;
|
||||||
type: string;
|
type: string;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@ import {emitPacket} from "../emitKafkatorioPacket";
|
||||||
|
|
||||||
/** Every 0.1 seconds */
|
/** Every 0.1 seconds */
|
||||||
script.on_nth_tick(6, (nthTick: NthTickEventData) => {
|
script.on_nth_tick(6, (nthTick: NthTickEventData) => {
|
||||||
|
|
||||||
const cachedEvents: Array<FactorioEventUpdate> = EventDataCache.extractExpired()
|
const cachedEvents: Array<FactorioEventUpdate> = EventDataCache.extractExpired()
|
||||||
|
|
||||||
if (cachedEvents.length > 0) {
|
if (cachedEvents.length > 0) {
|
||||||
|
|
|
||||||
|
|
@ -40,8 +40,8 @@ commands.add_command(
|
||||||
let chunkYMin = chunkPosition.y - radius
|
let chunkYMin = chunkPosition.y - radius
|
||||||
let chunkYMax = chunkPosition.y + radius
|
let chunkYMax = chunkPosition.y + radius
|
||||||
|
|
||||||
for (let [, surface] of game.surfaces) {
|
for (const [, surface] of game.surfaces) {
|
||||||
for (let chunk of surface.get_chunks()) {
|
for (const chunk of surface.get_chunks()) {
|
||||||
if (
|
if (
|
||||||
(chunk.x >= chunkXMin && chunk.x <= chunkXMax)
|
(chunk.x >= chunkXMin && chunk.x <= chunkXMax)
|
||||||
&&
|
&&
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ export namespace Converters {
|
||||||
type: entity.type,
|
type: entity.type,
|
||||||
active: entity.active,
|
active: entity.active,
|
||||||
health: entity.health ?? null,
|
health: entity.health ?? null,
|
||||||
healthRatio: entity.get_health_ratio(),
|
healthRatio: entity.get_health_ratio() ?? null,
|
||||||
surface: entity.surface.index,
|
surface: entity.surface.index,
|
||||||
unitNumber: entity.unit_number ?? null,
|
unitNumber: entity.unit_number ?? null,
|
||||||
position: mapEntityPosition(entity.position),
|
position: mapEntityPosition(entity.position),
|
||||||
|
|
|
||||||
|
|
@ -31,19 +31,21 @@ function mapTilesUpdateDebounce(
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const key: CacheKey<"MAP_CHUNK"> = {
|
||||||
|
surfaceIndex: surface.index,
|
||||||
|
chunkPosition: chunkPosition,
|
||||||
|
updateType: "MAP_CHUNK",
|
||||||
|
}
|
||||||
|
|
||||||
EventDataCache.debounce<"MAP_CHUNK">(
|
EventDataCache.debounce<"MAP_CHUNK">(
|
||||||
{
|
key,
|
||||||
surfaceIndex: surface.index,
|
|
||||||
chunkPosition: chunkPosition,
|
|
||||||
updateType: "MAP_CHUNK",
|
|
||||||
},
|
|
||||||
data => {
|
data => {
|
||||||
data.tileDictionary ??= <MapTileDictionary>{
|
data.tileDictionary ??= <MapTileDictionary>{
|
||||||
tilesXY: {},
|
tilesXY: {},
|
||||||
protos: {},
|
protos: {},
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let tile of tiles) {
|
for (const tile of tiles) {
|
||||||
|
|
||||||
const xString = `${tile.position.x}`
|
const xString = `${tile.position.x}`
|
||||||
const yString = `${tile.position.y}`
|
const yString = `${tile.position.y}`
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,9 @@
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"enhanced-resolve": {
|
"enhanced-resolve": {
|
||||||
"version": "5.8.3",
|
"version": "5.9.2",
|
||||||
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz",
|
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz",
|
||||||
"integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==",
|
"integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"graceful-fs": "^4.2.4",
|
"graceful-fs": "^4.2.4",
|
||||||
"tapable": "^2.2.0"
|
"tapable": "^2.2.0"
|
||||||
|
|
@ -50,11 +50,11 @@
|
||||||
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
|
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
|
||||||
},
|
},
|
||||||
"resolve": {
|
"resolve": {
|
||||||
"version": "1.21.1",
|
"version": "1.22.0",
|
||||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.1.tgz",
|
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
|
||||||
"integrity": "sha512-lfEImVbnolPuaSZuLQ52cAxPBHeI77sPwCOWRdy12UG/CNa8an7oBHH1R+Fp1/mUqSJi4c8TIP6FOIPSZAUrEQ==",
|
"integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-core-module": "^2.8.0",
|
"is-core-module": "^2.8.1",
|
||||||
"path-parse": "^1.0.7",
|
"path-parse": "^1.0.7",
|
||||||
"supports-preserve-symlinks-flag": "^1.0.0"
|
"supports-preserve-symlinks-flag": "^1.0.0"
|
||||||
}
|
}
|
||||||
|
|
@ -75,9 +75,9 @@
|
||||||
"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
|
"integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ=="
|
||||||
},
|
},
|
||||||
"typed-factorio": {
|
"typed-factorio": {
|
||||||
"version": "0.18.1",
|
"version": "0.19.1",
|
||||||
"resolved": "https://registry.npmjs.org/typed-factorio/-/typed-factorio-0.18.1.tgz",
|
"resolved": "https://registry.npmjs.org/typed-factorio/-/typed-factorio-0.19.1.tgz",
|
||||||
"integrity": "sha512-osjGO4V809tlDnDI7lXTIOPCcDBwBfKfW6o8zFR04S0/uBAzP4eY3X3GXTPzWK/P3HJ9GXDUHV2Nai2ZRicbkA=="
|
"integrity": "sha512-/iLa916Cw33vC6wgmCb4cPLjmvUA2zVviTx/vy80iEvpOHjoNkuHkGSsmvss1aItwUKUlHaLi3k0fK5OPiw1iA=="
|
||||||
},
|
},
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"version": "4.5.5",
|
"version": "4.5.5",
|
||||||
|
|
@ -85,9 +85,9 @@
|
||||||
"integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA=="
|
"integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA=="
|
||||||
},
|
},
|
||||||
"typescript-to-lua": {
|
"typescript-to-lua": {
|
||||||
"version": "1.3.3",
|
"version": "1.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/typescript-to-lua/-/typescript-to-lua-1.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript-to-lua/-/typescript-to-lua-1.3.4.tgz",
|
||||||
"integrity": "sha512-Fkt0+dLufN5CK0G/qpINY7Sb0+SNmWpov+PHhO/dq0HFoNBzR47M1SJd+hQbG92vTVFLBO4f+Np29LuVvoemMA==",
|
"integrity": "sha512-9NkUOSUd9tufvwCGiWJ6Z1edizYcECUfjdZJZfDRKTEXKIddbAdV3IFR6u5gxvYYRfXhfNV6IKvqHS2HxHFs6w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"enhanced-resolve": "^5.8.2",
|
"enhanced-resolve": "^5.8.2",
|
||||||
"resolve": "^1.15.1",
|
"resolve": "^1.15.1",
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"lua-types": "^2.11.0",
|
"lua-types": "^2.11.0",
|
||||||
"typescript-to-lua": "1.3.3",
|
"typescript-to-lua": "1.3.4",
|
||||||
"typed-factorio": "0.18.1",
|
"typed-factorio": "0.19.1",
|
||||||
"typescript": "4.5.5"
|
"typescript": "4.5.5"
|
||||||
},
|
},
|
||||||
"// @types/node": "^12.0.8",
|
"// @types/node": "^12.0.8",
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,7 @@ data class EntityData(
|
||||||
override val surface: SurfaceIndex,
|
override val surface: SurfaceIndex,
|
||||||
val active: Boolean,
|
val active: Boolean,
|
||||||
val health: Double?,
|
val health: Double?,
|
||||||
val healthRatio: Double,
|
val healthRatio: Double?,
|
||||||
val name: String,
|
val name: String,
|
||||||
val playerIndex: PlayerIndex? = null,
|
val playerIndex: PlayerIndex? = null,
|
||||||
val type: String,
|
val type: String,
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ object KafkatorioPacketJsonSerializer : JsonContentPolymorphicSerializer<Kafkato
|
||||||
|
|
||||||
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<out KafkatorioPacket> {
|
override fun selectDeserializer(element: JsonElement): DeserializationStrategy<out KafkatorioPacket> {
|
||||||
|
|
||||||
val type = element
|
val type: KafkatorioPacket.PacketType? = element
|
||||||
.jsonObject[key]
|
.jsonObject[key]
|
||||||
?.jsonPrimitive
|
?.jsonPrimitive
|
||||||
?.contentOrNull
|
?.contentOrNull
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
package dev.adamko.kafkatorio.events.schema
|
package dev.adamko.kafkatorio.events.schema
|
||||||
|
|
||||||
import io.kotest.core.spec.style.BehaviorSpec
|
import io.kotest.core.spec.style.BehaviorSpec
|
||||||
|
import io.kotest.matchers.collections.shouldContain
|
||||||
|
import io.kotest.matchers.types.shouldBeInstanceOf
|
||||||
import kotlinx.serialization.decodeFromString
|
import kotlinx.serialization.decodeFromString
|
||||||
|
|
||||||
class PrototypesTest : BehaviorSpec(
|
class PrototypesTest : BehaviorSpec({
|
||||||
{
|
Given("Prototypes Json") {
|
||||||
Given("Prototypes Json") {
|
// language=JSON
|
||||||
//Language=JSON
|
val raw = """
|
||||||
val raw = """
|
|
||||||
{
|
{
|
||||||
"modVersion":"0.2.4",
|
"modVersion":"0.2.4",
|
||||||
"packetType":"PROTOTYPES",
|
"packetType":"PROTOTYPES",
|
||||||
|
|
@ -30,16 +31,908 @@ class PrototypesTest : BehaviorSpec(
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
|
|
||||||
Then("expect can be parsed") {
|
|
||||||
val data = jsonMapperKafkatorio.decodeFromString<KafkatorioPacket>(raw)
|
|
||||||
println(data)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
Then("expect can be parsed") {
|
||||||
|
val data = jsonMapperKafkatorio.decodeFromString<KafkatorioPacket>(raw)
|
||||||
|
println(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
) {
|
|
||||||
companion object {
|
Given("Big prototypes json") {
|
||||||
|
// language=JSON
|
||||||
|
val raw = """
|
||||||
|
{
|
||||||
|
"modVersion":"0.3.2",
|
||||||
|
"packetType":"PROTOTYPES",
|
||||||
|
"prototypes":[
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"stone-path",
|
||||||
|
"order":"a[artificial]-a[tier-1]-a[stone-path]",
|
||||||
|
"layer":60,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":86,
|
||||||
|
"green":82,
|
||||||
|
"blue":74,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"concrete",
|
||||||
|
"order":"a[artificial]-b[tier-2]-a[concrete]",
|
||||||
|
"layer":61,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":63,
|
||||||
|
"green":61,
|
||||||
|
"blue":59,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"hazard-concrete-left",
|
||||||
|
"order":"a[artificial]-b[tier-2]-b[hazard-concrete-left]",
|
||||||
|
"layer":62,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":176,
|
||||||
|
"green":142,
|
||||||
|
"blue":39,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"hazard-concrete-right",
|
||||||
|
"order":"a[artificial]-b[tier-2]-c[hazard-concrete-right]",
|
||||||
|
"layer":62,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":176,
|
||||||
|
"green":142,
|
||||||
|
"blue":39,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"refined-concrete",
|
||||||
|
"order":"a[artificial]-c[tier-3]-a[refined-concrete]",
|
||||||
|
"layer":64,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":49,
|
||||||
|
"green":48,
|
||||||
|
"blue":45,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"refined-hazard-concrete-left",
|
||||||
|
"order":"a[artificial]-c[tier-3]-b[refined-hazard-concrete-left]",
|
||||||
|
"layer":65,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":116,
|
||||||
|
"green":94,
|
||||||
|
"blue":26,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"refined-hazard-concrete-right",
|
||||||
|
"order":"a[artificial]-c[tier-3]-c[refined-hazard-concrete-right]",
|
||||||
|
"layer":65,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":116,
|
||||||
|
"green":94,
|
||||||
|
"blue":26,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"landfill",
|
||||||
|
"order":"a[artificial]-d[utility]-a[landfill]",
|
||||||
|
"layer":57,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":57,
|
||||||
|
"green":39,
|
||||||
|
"blue":26,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"acid-refined-concrete",
|
||||||
|
"order":"a[artificial]-e[color-concrete]-acid",
|
||||||
|
"layer":97,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":142,
|
||||||
|
"green":194,
|
||||||
|
"blue":40,
|
||||||
|
"alpha":127
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"black-refined-concrete",
|
||||||
|
"order":"a[artificial]-e[color-concrete]-black",
|
||||||
|
"layer":88,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":25,
|
||||||
|
"green":25,
|
||||||
|
"blue":25,
|
||||||
|
"alpha":127
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"blue-refined-concrete",
|
||||||
|
"order":"a[artificial]-e[color-concrete]-blue",
|
||||||
|
"layer":73,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":39,
|
||||||
|
"green":137,
|
||||||
|
"blue":228,
|
||||||
|
"alpha":127
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"brown-refined-concrete",
|
||||||
|
"order":"a[artificial]-e[color-concrete]-brown",
|
||||||
|
"layer":91,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":76,
|
||||||
|
"green":29,
|
||||||
|
"blue":0,
|
||||||
|
"alpha":127
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"cyan-refined-concrete",
|
||||||
|
"order":"a[artificial]-e[color-concrete]-cyan",
|
||||||
|
"layer":94,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":70,
|
||||||
|
"green":192,
|
||||||
|
"blue":181,
|
||||||
|
"alpha":127
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"green-refined-concrete",
|
||||||
|
"order":"a[artificial]-e[color-concrete]-green",
|
||||||
|
"layer":70,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":23,
|
||||||
|
"green":195,
|
||||||
|
"blue":43,
|
||||||
|
"alpha":127
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"orange-refined-concrete",
|
||||||
|
"order":"a[artificial]-e[color-concrete]-orange",
|
||||||
|
"layer":76,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":221,
|
||||||
|
"green":127,
|
||||||
|
"blue":33,
|
||||||
|
"alpha":127
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"pink-refined-concrete",
|
||||||
|
"order":"a[artificial]-e[color-concrete]-pink",
|
||||||
|
"layer":82,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":236,
|
||||||
|
"green":98,
|
||||||
|
"blue":131,
|
||||||
|
"alpha":127
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"purple-refined-concrete",
|
||||||
|
"order":"a[artificial]-e[color-concrete]-purple",
|
||||||
|
"layer":85,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":123,
|
||||||
|
"green":28,
|
||||||
|
"blue":168,
|
||||||
|
"alpha":127
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"red-refined-concrete",
|
||||||
|
"order":"a[artificial]-e[color-concrete]-red",
|
||||||
|
"layer":67,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":207,
|
||||||
|
"green":6,
|
||||||
|
"blue":0,
|
||||||
|
"alpha":127
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"yellow-refined-concrete",
|
||||||
|
"order":"a[artificial]-e[color-concrete]-yellow",
|
||||||
|
"layer":79,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":212,
|
||||||
|
"green":169,
|
||||||
|
"blue":19,
|
||||||
|
"alpha":127
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"grass-1",
|
||||||
|
"order":"b[natural]-a[grass]-a[grass-1]",
|
||||||
|
"layer":26,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":55,
|
||||||
|
"green":53,
|
||||||
|
"blue":11,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"grass-2",
|
||||||
|
"order":"b[natural]-a[grass]-b[grass-2]",
|
||||||
|
"layer":28,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":66,
|
||||||
|
"green":57,
|
||||||
|
"blue":15,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"grass-3",
|
||||||
|
"order":"b[natural]-a[grass]-c[grass-3]",
|
||||||
|
"layer":29,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":65,
|
||||||
|
"green":52,
|
||||||
|
"blue":28,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"grass-4",
|
||||||
|
"order":"b[natural]-a[grass]-d[grass-4]",
|
||||||
|
"layer":30,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":59,
|
||||||
|
"green":40,
|
||||||
|
"blue":18,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"dry-dirt",
|
||||||
|
"order":"b[natural]-b[dirt]-a[dry-dirt]",
|
||||||
|
"layer":18,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":94,
|
||||||
|
"green":66,
|
||||||
|
"blue":37,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"dirt-1",
|
||||||
|
"order":"b[natural]-b[dirt]-b[dirt-1]",
|
||||||
|
"layer":19,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":141,
|
||||||
|
"green":104,
|
||||||
|
"blue":60,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"dirt-2",
|
||||||
|
"order":"b[natural]-b[dirt]-c[dirt-2]",
|
||||||
|
"layer":20,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":136,
|
||||||
|
"green":96,
|
||||||
|
"blue":59,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"dirt-3",
|
||||||
|
"order":"b[natural]-b[dirt]-d[dirt-3]",
|
||||||
|
"layer":21,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":133,
|
||||||
|
"green":92,
|
||||||
|
"blue":53,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"dirt-4",
|
||||||
|
"order":"b[natural]-b[dirt]-e[dirt-4]",
|
||||||
|
"layer":22,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":103,
|
||||||
|
"green":72,
|
||||||
|
"blue":43,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"dirt-5",
|
||||||
|
"order":"b[natural]-b[dirt]-f[dirt-5]",
|
||||||
|
"layer":23,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":91,
|
||||||
|
"green":63,
|
||||||
|
"blue":38,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"dirt-6",
|
||||||
|
"order":"b[natural]-b[dirt]-g[dirt-6]",
|
||||||
|
"layer":24,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":80,
|
||||||
|
"green":55,
|
||||||
|
"blue":31,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"dirt-7",
|
||||||
|
"order":"b[natural]-b[dirt]-h[dirt-7]",
|
||||||
|
"layer":25,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":80,
|
||||||
|
"green":54,
|
||||||
|
"blue":28,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"sand-1",
|
||||||
|
"order":"b[natural]-c[sand]-a[sand-1]",
|
||||||
|
"layer":8,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":138,
|
||||||
|
"green":103,
|
||||||
|
"blue":58,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"sand-2",
|
||||||
|
"order":"b[natural]-c[sand]-b[sand-2]",
|
||||||
|
"layer":9,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":128,
|
||||||
|
"green":93,
|
||||||
|
"blue":52,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"sand-3",
|
||||||
|
"order":"b[natural]-c[sand]-c[sand-3]",
|
||||||
|
"layer":10,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":115,
|
||||||
|
"green":83,
|
||||||
|
"blue":47,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"red-desert-0",
|
||||||
|
"order":"b[natural]-d[red-desert]-a[red-desert-0]",
|
||||||
|
"layer":31,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":103,
|
||||||
|
"green":70,
|
||||||
|
"blue":32,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"red-desert-1",
|
||||||
|
"order":"b[natural]-d[red-desert]-b[red-desert-1]",
|
||||||
|
"layer":14,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":116,
|
||||||
|
"green":81,
|
||||||
|
"blue":39,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"red-desert-2",
|
||||||
|
"order":"b[natural]-d[red-desert]-c[red-desert-2]",
|
||||||
|
"layer":15,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":116,
|
||||||
|
"green":84,
|
||||||
|
"blue":43,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"red-desert-3",
|
||||||
|
"order":"b[natural]-d[red-desert]-d[red-desert-3]",
|
||||||
|
"layer":16,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":128,
|
||||||
|
"green":93,
|
||||||
|
"blue":52,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"water",
|
||||||
|
"order":"c[water]-a[water]",
|
||||||
|
"layer":3,
|
||||||
|
"collisionMasks":[
|
||||||
|
"doodad-layer",
|
||||||
|
"item-layer",
|
||||||
|
"player-layer",
|
||||||
|
"resource-layer",
|
||||||
|
"water-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":51,
|
||||||
|
"green":83,
|
||||||
|
"blue":95,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"deepwater",
|
||||||
|
"order":"c[water]-b[deep-water]",
|
||||||
|
"layer":3,
|
||||||
|
"collisionMasks":[
|
||||||
|
"doodad-layer",
|
||||||
|
"item-layer",
|
||||||
|
"player-layer",
|
||||||
|
"resource-layer",
|
||||||
|
"water-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":38,
|
||||||
|
"green":64,
|
||||||
|
"blue":73,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"water-green",
|
||||||
|
"order":"c[water]-c[water-green]",
|
||||||
|
"layer":3,
|
||||||
|
"collisionMasks":[
|
||||||
|
"doodad-layer",
|
||||||
|
"item-layer",
|
||||||
|
"player-layer",
|
||||||
|
"resource-layer",
|
||||||
|
"water-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":31,
|
||||||
|
"green":48,
|
||||||
|
"blue":18,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"deepwater-green",
|
||||||
|
"order":"c[water]-d[deepwater-green]",
|
||||||
|
"layer":3,
|
||||||
|
"collisionMasks":[
|
||||||
|
"doodad-layer",
|
||||||
|
"item-layer",
|
||||||
|
"player-layer",
|
||||||
|
"resource-layer",
|
||||||
|
"water-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":23,
|
||||||
|
"green":37,
|
||||||
|
"blue":16,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"water-shallow",
|
||||||
|
"order":"c[water]-e[water-shallow]",
|
||||||
|
"layer":6,
|
||||||
|
"collisionMasks":[
|
||||||
|
"item-layer",
|
||||||
|
"object-layer",
|
||||||
|
"resource-layer",
|
||||||
|
"water-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":82,
|
||||||
|
"green":98,
|
||||||
|
"blue":92,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"water-mud",
|
||||||
|
"order":"c[water]-g[water-mud]",
|
||||||
|
"layer":7,
|
||||||
|
"collisionMasks":[
|
||||||
|
"item-layer",
|
||||||
|
"object-layer",
|
||||||
|
"resource-layer",
|
||||||
|
"water-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":65,
|
||||||
|
"green":89,
|
||||||
|
"blue":90,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"nuclear-ground",
|
||||||
|
"order":"d[destruction]-a[nuclear]-a[nuclear-ground]",
|
||||||
|
"layer":33,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":48,
|
||||||
|
"green":40,
|
||||||
|
"blue":35,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"water-wube",
|
||||||
|
"order":"x[wube]-a[water-wube]",
|
||||||
|
"layer":2,
|
||||||
|
"collisionMasks":[
|
||||||
|
"doodad-layer",
|
||||||
|
"item-layer",
|
||||||
|
"player-layer",
|
||||||
|
"resource-layer",
|
||||||
|
"water-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":0,
|
||||||
|
"green":0,
|
||||||
|
"blue":0,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"tile-unknown",
|
||||||
|
"order":"z-a",
|
||||||
|
"layer":0,
|
||||||
|
"collisionMasks":{
|
||||||
|
|
||||||
|
},
|
||||||
|
"mapColour":{
|
||||||
|
"red":0,
|
||||||
|
"green":0,
|
||||||
|
"blue":0,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"out-of-map",
|
||||||
|
"order":"z[other]-a[out-of-map]",
|
||||||
|
"layer":0,
|
||||||
|
"collisionMasks":[
|
||||||
|
"doodad-layer",
|
||||||
|
"floor-layer",
|
||||||
|
"ground-tile",
|
||||||
|
"item-layer",
|
||||||
|
"object-layer",
|
||||||
|
"player-layer",
|
||||||
|
"resource-layer",
|
||||||
|
"water-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":0,
|
||||||
|
"green":0,
|
||||||
|
"blue":0,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"lab-dark-1",
|
||||||
|
"order":"z[other]-b[lab]-a[lab-dark-1]",
|
||||||
|
"layer":70,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":49,
|
||||||
|
"green":49,
|
||||||
|
"blue":49,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"lab-dark-2",
|
||||||
|
"order":"z[other]-b[lab]-b[lab-dark-2]",
|
||||||
|
"layer":70,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":0,
|
||||||
|
"green":0,
|
||||||
|
"blue":0,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"lab-white",
|
||||||
|
"order":"z[other]-b[lab]-c[lab-white]",
|
||||||
|
"layer":70,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":255,
|
||||||
|
"green":255,
|
||||||
|
"blue":255,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prototypeObjectName":"LuaTilePrototype",
|
||||||
|
"name":"tutorial-grid",
|
||||||
|
"order":"z[other]-c[tutorial]-a[tutorial-grid]",
|
||||||
|
"layer":55,
|
||||||
|
"collisionMasks":[
|
||||||
|
"ground-tile"
|
||||||
|
],
|
||||||
|
"mapColour":{
|
||||||
|
"red":122,
|
||||||
|
"green":122,
|
||||||
|
"blue":122,
|
||||||
|
"alpha":255
|
||||||
|
},
|
||||||
|
"canBeMined":false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
""".trimIndent()
|
||||||
|
|
||||||
|
Then("expect can be parsed") {
|
||||||
|
val data: KafkatorioPacket = jsonMapperKafkatorio.decodeFromString(raw)
|
||||||
|
println(data)
|
||||||
|
|
||||||
|
data.shouldBeInstanceOf<FactorioPrototypes>()
|
||||||
|
|
||||||
|
data.prototypes.shouldContain(
|
||||||
|
MapTilePrototype(
|
||||||
|
name = PrototypeName("tutorial-grid"),
|
||||||
|
order = "z[other]-c[tutorial]-a[tutorial-grid]",
|
||||||
|
layer = 55u,
|
||||||
|
collisionMasks = listOf("ground-tile"),
|
||||||
|
mapColour = Colour(122f, 122f, 122f, 255f),
|
||||||
|
canBeMined = false,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,8 @@ fun main(args: Array<String>) {
|
||||||
add(FactorioPrototypes::class)
|
add(FactorioPrototypes::class)
|
||||||
add(FactorioConfigurationUpdate::class)
|
add(FactorioConfigurationUpdate::class)
|
||||||
|
|
||||||
|
add(FactorioEvent::class)
|
||||||
|
|
||||||
add(FactorioEventUpdatePacket::class)
|
add(FactorioEventUpdatePacket::class)
|
||||||
addAll(FactorioEventUpdate::class.sealedSubclasses)
|
addAll(FactorioEventUpdate::class.sealedSubclasses)
|
||||||
addAll(FactorioEventUpdateKey::class.sealedSubclasses)
|
addAll(FactorioEventUpdateKey::class.sealedSubclasses)
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,6 @@ internal class KafkatorioTopology(
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
val topology = builder.build()
|
val topology = builder.build()
|
||||||
launchTopology("groupTilesMapChunks", topology)
|
launchTopology("groupTilesMapChunks", topology)
|
||||||
}
|
}
|
||||||
|
|
@ -117,7 +116,7 @@ internal class KafkatorioTopology(
|
||||||
private fun saveTiles() {
|
private fun saveTiles() {
|
||||||
val builder = StreamsBuilder()
|
val builder = StreamsBuilder()
|
||||||
|
|
||||||
val groupedMapChunkTiles: KTable<ServerMapChunkId, ServerMapChunkTiles<ColourHex>> =
|
val groupedMapChunkTiles: KTable<ServerMapChunkId?, ServerMapChunkTiles<ColourHex>?> =
|
||||||
builder.table(
|
builder.table(
|
||||||
TOPIC_GROUPED_MAP_CHUNKS,
|
TOPIC_GROUPED_MAP_CHUNKS,
|
||||||
consumedAs("consume.grouped-map-chunks", kxsBinary.serde(), kxsBinary.serde())
|
consumedAs("consume.grouped-map-chunks", kxsBinary.serde(), kxsBinary.serde())
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ private val serverMapChunkHandler = ServerMapChunkHandler()
|
||||||
|
|
||||||
|
|
||||||
fun saveMapTiles(
|
fun saveMapTiles(
|
||||||
serverMapTable: KTable<ServerMapChunkId, ServerMapChunkTiles<ColourHex>>
|
serverMapTable: KTable<ServerMapChunkId?, ServerMapChunkTiles<ColourHex>?>
|
||||||
) {
|
) {
|
||||||
|
|
||||||
serverMapTable
|
serverMapTable
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue