satisfactory-json
Advanced tools
Comparing version 0.0.6 to 0.0.7
@@ -1,2 +0,2 @@ | ||
import { Entity } from './types'; | ||
import { Actor, Component, Entity, Property, SaveGame } from './types'; | ||
interface OutputBufferBuffer { | ||
@@ -25,10 +25,10 @@ bytes: string; | ||
buffer: OutputBuffer; | ||
saveJson: any; | ||
constructor(saveJson: any); | ||
saveJson: SaveGame; | ||
constructor(saveJson: SaveGame); | ||
transform(): string | undefined; | ||
writeActor(obj: any): void; | ||
writeComponent(obj: any): void; | ||
writeEntity(entity: any, withNames: boolean, className: string): void; | ||
writeActor(obj: Actor): void; | ||
writeComponent(obj: Component): void; | ||
writeEntity(entity: Entity, withNames: boolean, className: string): void; | ||
writeNone(): void; | ||
writeProperty(property: any): void; | ||
writeProperty(property: Property): void; | ||
writeExtra(entity: Entity, className: string): void; | ||
@@ -35,0 +35,0 @@ writePowerLineExtra(entity: Entity): void; |
@@ -106,24 +106,18 @@ "use strict"; | ||
} | ||
this.buffer.writeInt(saveJson.objects.length); | ||
for (const obj of saveJson.objects) { | ||
this.buffer.writeInt(saveJson.actors.length + saveJson.components.length); | ||
for (const obj of saveJson.actors) { | ||
this.buffer.writeInt(obj.type); | ||
if (obj.type === 1) { | ||
this.writeActor(obj); | ||
} | ||
else if (obj.type === 0) { | ||
this.writeComponent(obj); | ||
} | ||
else { | ||
this.error('uknown type ' + obj.type); | ||
} | ||
this.writeActor(obj); | ||
} | ||
this.buffer.writeInt(saveJson.objects.length); | ||
for (const obj of saveJson.objects) { | ||
if (obj.type === 1) { | ||
this.writeEntity(obj.entity, true, obj.className); | ||
} | ||
else if (obj.type === 0) { | ||
this.writeEntity(obj.entity, false, obj.className); | ||
} | ||
for (const obj of saveJson.components) { | ||
this.buffer.writeInt(obj.type); | ||
this.writeComponent(obj); | ||
} | ||
this.buffer.writeInt(saveJson.actors.length + saveJson.components.length); | ||
for (const obj of saveJson.actors) { | ||
this.writeEntity(obj.entity, true, obj.className); | ||
} | ||
for (const obj of saveJson.components) { | ||
this.writeEntity(obj.entity, false, obj.className); | ||
} | ||
this.buffer.writeInt(saveJson.collected.length); | ||
@@ -221,8 +215,9 @@ for (const obj of saveJson.collected) { | ||
case 'TextProperty': | ||
const textProperty = property; | ||
this.buffer.writeByte(0, false); | ||
this.buffer.writeInt(property.unkown1); | ||
this.buffer.writeByte(property.unkown2); | ||
this.buffer.writeInt(property.unkown3); | ||
this.buffer.writeLengthPrefixedString(property.unknown4); | ||
this.buffer.writeLengthPrefixedString(property.value); | ||
this.buffer.writeInt(textProperty.unknown1); | ||
this.buffer.writeByte(textProperty.unknown2); | ||
this.buffer.writeInt(textProperty.unknown3); | ||
this.buffer.writeLengthPrefixedString(textProperty.unknown4); | ||
this.buffer.writeLengthPrefixedString(textProperty.value); | ||
break; | ||
@@ -250,6 +245,7 @@ case 'ByteProperty': | ||
break; | ||
case 'StructProperty': | ||
this.buffer.writeLengthPrefixedString(property.value.type, false); | ||
this.buffer.writeHex(property.structUnknown, false); | ||
const structType = property.value.type; | ||
case 'StructProperty': { | ||
const structProperty = property; | ||
this.buffer.writeLengthPrefixedString(structProperty.value.type, false); | ||
this.buffer.writeHex(structProperty.structUnknown, false); | ||
const structType = structProperty.value.type; | ||
switch (structType) { | ||
@@ -326,2 +322,3 @@ case 'Vector': | ||
break; | ||
} | ||
case 'ArrayProperty': | ||
@@ -351,8 +348,9 @@ const itemType = property.value.type; | ||
case 'StructProperty': | ||
this.buffer.writeLengthPrefixedString(property.structName); | ||
this.buffer.writeLengthPrefixedString(property.structType); | ||
const arrayProperty = property; | ||
this.buffer.writeLengthPrefixedString(arrayProperty.structName); | ||
this.buffer.writeLengthPrefixedString(arrayProperty.structType); | ||
this.buffer.addBuffer(); | ||
this.buffer.writeInt(0, false); | ||
this.buffer.writeLengthPrefixedString(property.structInnerType, false); | ||
this.buffer.writeHex(property.structUnknown, false); | ||
this.buffer.writeLengthPrefixedString(arrayProperty.structInnerType, false); | ||
this.buffer.writeHex(arrayProperty.structUnknown, false); | ||
for (const prop of property.value.values) { | ||
@@ -359,0 +357,0 @@ const obj = prop; |
/// <reference types="node" /> | ||
import { Actor, Entity, Component, Property, SaveGame } from './types'; | ||
import { Entity, Property, SaveGame } from './types'; | ||
declare class DataBuffer { | ||
@@ -23,4 +23,4 @@ buffer: Buffer; | ||
transform(): SaveGame | undefined; | ||
readActor(buffer: DataBuffer): Actor; | ||
readComponent(buffer: DataBuffer): Component; | ||
readActor(buffer: DataBuffer): any; | ||
readComponent(buffer: DataBuffer): any; | ||
readEntity(buffer: DataBuffer, withNames: boolean, className: string): Entity; | ||
@@ -27,0 +27,0 @@ readProperty(buffer: DataBuffer, properties: Property[]): boolean; |
@@ -123,3 +123,4 @@ "use strict"; | ||
sessionVisibility: saveHeaderType > 4 ? buffer.readByte() : 0, | ||
objects: [], | ||
actors: [], | ||
components: [], | ||
collected: [], | ||
@@ -135,6 +136,6 @@ missing: '' | ||
if (type === 1) { | ||
saveJson['objects'].push(this.readActor(buffer)); | ||
saveJson.actors.push(this.readActor(buffer)); | ||
} | ||
else if (type === 0) { | ||
saveJson['objects'].push(this.readComponent(buffer)); | ||
saveJson.components.push(this.readComponent(buffer)); | ||
} | ||
@@ -157,8 +158,8 @@ else { | ||
} | ||
if (saveJson.objects[i].type === 1) { | ||
saveJson.objects[i].entity = this.readEntity(buffer, true, saveJson.objects[i].className); | ||
if (i < saveJson.actors.length) { | ||
saveJson.actors[i].entity = this.readEntity(buffer, true, saveJson.actors[i].className); | ||
} | ||
else { | ||
// type == 0 | ||
saveJson.objects[i].entity = this.readEntity(buffer, false, saveJson.objects[i].className); | ||
saveJson.components[i - saveJson.actors.length].entity = this.readEntity(buffer, false, saveJson.components[i - saveJson.actors.length].className); | ||
} | ||
@@ -165,0 +166,0 @@ } |
@@ -11,3 +11,4 @@ export interface SaveGame { | ||
sessionVisibility: number; | ||
objects: ActorOrComponent[]; | ||
actors: Actor[]; | ||
components: Component[]; | ||
collected: ObjectReference[]; | ||
@@ -28,3 +29,3 @@ missing: string; | ||
wasPlacedInLevel: number; | ||
entity?: Entity; | ||
entity: Entity; | ||
} | ||
@@ -37,5 +38,4 @@ export interface Component { | ||
outerPathName: string; | ||
entity?: Entity; | ||
entity: Entity; | ||
} | ||
export declare type ActorOrComponent = Actor | Component; | ||
export interface Entity { | ||
@@ -81,4 +81,6 @@ levelName?: string; | ||
export interface ByteProperty extends BaseProperty { | ||
unk1: string; | ||
unk2: string; | ||
value: { | ||
unk1: string; | ||
unk2: number; | ||
}; | ||
} | ||
@@ -103,6 +105,8 @@ export interface EnumProperty extends BaseProperty { | ||
structInnerType?: string; | ||
structUnknown?: string; | ||
value: any; | ||
} | ||
export interface MapProperty extends BaseProperty { | ||
value: any; | ||
} | ||
export declare type Property = IntProperty | BoolProperty | FloatProperty | StrProperty | NameProperty | TextProperty | ByteProperty | EnumProperty | ObjectProperty | StructProperty | ArrayProperty | MapProperty; |
{ | ||
"name": "satisfactory-json", | ||
"version": "0.0.6", | ||
"version": "0.0.7", | ||
"description": "Convert Satisfactory save files to JSON and back", | ||
@@ -18,3 +18,5 @@ "main": "lib/index.js", | ||
"build:watch": "tsc --watch", | ||
"lint": "tslint --project \"./tsconfig.json\"" | ||
"lint": "tslint --project \"./tsconfig.json\"", | ||
"prepublish": "yarn build", | ||
"postversion": "git push && git push --tags" | ||
}, | ||
@@ -21,0 +23,0 @@ "files": [ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
50935
1274