diff --git a/config-serializer/config-items/ModuleConfiguration.ts b/config-serializer/config-items/ModuleConfiguration.ts new file mode 100644 index 00000000..efbf4342 --- /dev/null +++ b/config-serializer/config-items/ModuleConfiguration.ts @@ -0,0 +1,55 @@ +class ModuleConfiguration extends Serializable { + + /* + * module id enumeration is a separate story + */ + + // @assertUInt8 + id: number; + + // @assertUInt8 + initialPointerSpeed: number; + + // @assertUInt8 + pointerAcceleration: number; + + // @assertUInt8 + maxPointerSpeed: number; + + _fromJsObject(jsObject: any): ModuleConfiguration { + this.id = jsObject.id; + this.initialPointerSpeed = jsObject.initialPointerSpeed; + this.pointerAcceleration = jsObject.pointerAcceleration; + this.maxPointerSpeed = jsObject.maxPointerSpeed; + return this; + } + + _fromBinary(buffer: UhkBuffer): ModuleConfiguration { + this.id = buffer.readUInt8(); + this.initialPointerSpeed = buffer.readUInt8(); + this.pointerAcceleration = buffer.readUInt8(); + this.maxPointerSpeed = buffer.readUInt8(); + return this; + } + + _toJsObject(): any { + return { + id: this.id, + initialPointerSpeed: this.initialPointerSpeed, + pointerAcceleration: this.pointerAcceleration, + maxPointerSpeed: this.maxPointerSpeed + }; + } + + _toBinary(buffer: UhkBuffer): void { + buffer.writeUInt8(this.id); + buffer.writeUInt8(this.initialPointerSpeed); + buffer.writeUInt8(this.pointerAcceleration); + buffer.writeUInt8(this.maxPointerSpeed); + } + + toString(): string { + return ``; + } + +} diff --git a/config-serializer/config-items/ModuleConfigurations.ts b/config-serializer/config-items/ModuleConfigurations.ts new file mode 100644 index 00000000..b9cea760 --- /dev/null +++ b/config-serializer/config-items/ModuleConfigurations.ts @@ -0,0 +1,11 @@ +class ModuleConfigurations extends ClassArray { + + jsObjectToClass(jsObject: any): Serializable { + return new ModuleConfiguration().fromJsObject(jsObject); + } + + binaryToClass(buffer: UhkBuffer): Serializable { + return new ModuleConfiguration().fromBinary(buffer); + } + +} diff --git a/config-serializer/config-items/UhkConfiguration.ts b/config-serializer/config-items/UhkConfiguration.ts new file mode 100644 index 00000000..192eab4a --- /dev/null +++ b/config-serializer/config-items/UhkConfiguration.ts @@ -0,0 +1,53 @@ +class UhkConfiguration extends Serializable { + + // @assertUInt8 + id: number; + + name: string; + + abbreviation: string; + + isDefault: boolean; + + layers: Serializable; + + _fromJsObject(jsObject: any): UhkConfiguration { + this.id = jsObject.id; + this.isDefault = jsObject.isDefault; + this.abbreviation = jsObject.abbreviation; + this.name = jsObject.name; + this.layers = new Layers().fromJsObject(jsObject.layers); + return this; + } + + _fromBinary(buffer: UhkBuffer): UhkConfiguration { + this.id = buffer.readUInt8(); + this.isDefault = buffer.readBoolean(); + this.abbreviation = buffer.readString(); + this.name = buffer.readString(); + this.layers = new Layers().fromBinary(buffer); + return this; + } + + _toJsObject(): any { + return { + id: this.id, + isDefault: this.isDefault, + abbreviation: this.abbreviation, + name: this.name, + layers: this.layers.toJsObject() + }; + } + + _toBinary(buffer: UhkBuffer): void { + buffer.writeUInt8(this.id); + buffer.writeBoolean(this.isDefault); + buffer.writeString(this.abbreviation); + buffer.writeString(this.name); + this.layers.toBinary(buffer); + } + + toString(): string { + return ``; + } +} diff --git a/config-serializer/config-items/config-items.ts b/config-serializer/config-items/config-items.ts index 597ddb7e..c3d65d09 100644 --- a/config-serializer/config-items/config-items.ts +++ b/config-serializer/config-items/config-items.ts @@ -32,3 +32,6 @@ /// /// /// +/// +/// +/// diff --git a/config-serializer/test-serializer.ts b/config-serializer/test-serializer.ts index 8cae059c..a02acef0 100644 --- a/config-serializer/test-serializer.ts +++ b/config-serializer/test-serializer.ts @@ -10,8 +10,8 @@ let fs = require('fs'); let uhkConfig = JSON.parse(fs.readFileSync('uhk-config.json')); -let config1Js = uhkConfig.macros; -let config1Ts: Serializable = new Macros().fromJsObject(config1Js); +let config1Js = uhkConfig.moduleConfigurations; +let config1Ts: Serializable = new ModuleConfigurations().fromJsObject(config1Js); let config1Buffer = new UhkBuffer(); config1Ts.toBinary(config1Buffer); let config1BufferContent = config1Buffer.getBufferContent(); @@ -19,7 +19,7 @@ fs.writeFileSync('uhk-config.bin', config1BufferContent); config1Buffer.offset = 0; console.log(); -let config2Ts = new Macros().fromBinary(config1Buffer); +let config2Ts = new ModuleConfigurations().fromBinary(config1Buffer); console.log('\n'); let config2Js = config2Ts.toJsObject(); let config2Buffer = new UhkBuffer();